我有一个表视图控制器。我必须在此控制器内设置一个值。但我猜上面的代码只适用于视图控制器。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier! == "changeName" {
if let destination = segue.destinationViewController as? NameSettingTableViewController {
println("ok")
}
}
}
它没有打印" ok"调试。我认为因为NameSettingTableViewController
不是视图控制器。 destination
变量返回nil。我该如何解决这个问题?
答案 0 :(得分:1)
首先需要获取导航控制器,然后访问其topViewController属性以获取对NameSettingTableViewController的引用:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier! == "changeName" {
if let destination = segue.destinationViewController as? UINavigationController {
let destVC = destination.topViewController as! NameSettingTableViewController
// set whatever variables on destVC
println("ok")
}
}
}