将数据从 UIViewController 传递到 UISpiltView
Pass data from UIViewController to UISpiltView
现在我在将数据从 UIViewController 传递到 UISpiltViewController 时遇到了一些问题。
我的应用程序从 UIViewController 开始,在用户登录后,从 UIViewController 到 UISpiltViewController 有一个 segue,UISpiltViewController 是 NavigationViewController 的根视图,而这个 NavigationViewController 是 TableViewController 的根视图。我已经为这个TableViewController写了一个class,叫做MasterView,现在我想从loginView传递一些信息给这个MasterView。
self.performSegueWithIdentifier("login", sender: self)
但是我想知道如何编写prepareforsegue函数。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "login"
{
let controller = (segue.destinationViewController as UINavigationController).topViewController as MasterViewController
controller.authorityNum = self.authorityArray
}
}
我想传递一个数组,但我会得到 class 转换错误。请帮我解决这个问题。
像这样,
let destinationViewController = segue.destinationViewController as! MasterViewController
尝试这个我不确定,但我认为你的转场是 模型转场 所以
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "login"
{
var splitView:UISplitViewController = segue.destinationViewController as! UISplitViewController
var controller = splitView.viewControllers.first?.topViewController as! MasterViewController
controller.authorityNum = self.authorityArray
}
}
尝试对可能有帮助的每一行进行 NSLog
Swift 3 个已接受的答案。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "login" {
let splitView:UISplitViewController = segue.destination as! UISplitViewController
let navController = splitView.viewControllers.first as! UINavigationController
let controller = navController?.topViewController as! MasterViewController
controller.authorityNum = self.authorityArray
}
}
现在我在将数据从 UIViewController 传递到 UISpiltViewController 时遇到了一些问题。 我的应用程序从 UIViewController 开始,在用户登录后,从 UIViewController 到 UISpiltViewController 有一个 segue,UISpiltViewController 是 NavigationViewController 的根视图,而这个 NavigationViewController 是 TableViewController 的根视图。我已经为这个TableViewController写了一个class,叫做MasterView,现在我想从loginView传递一些信息给这个MasterView。
self.performSegueWithIdentifier("login", sender: self)
但是我想知道如何编写prepareforsegue函数。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "login"
{
let controller = (segue.destinationViewController as UINavigationController).topViewController as MasterViewController
controller.authorityNum = self.authorityArray
}
}
我想传递一个数组,但我会得到 class 转换错误。请帮我解决这个问题。
像这样,
let destinationViewController = segue.destinationViewController as! MasterViewController
尝试这个我不确定,但我认为你的转场是 模型转场 所以
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "login"
{
var splitView:UISplitViewController = segue.destinationViewController as! UISplitViewController
var controller = splitView.viewControllers.first?.topViewController as! MasterViewController
controller.authorityNum = self.authorityArray
}
}
尝试对可能有帮助的每一行进行 NSLog
Swift 3 个已接受的答案。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "login" {
let splitView:UISplitViewController = segue.destination as! UISplitViewController
let navController = splitView.viewControllers.first as! UINavigationController
let controller = navController?.topViewController as! MasterViewController
controller.authorityNum = self.authorityArray
}
}