我试图通过segue将一些数据从选定行传递到另一个viewcontroller,但我不能。我几乎尝试了一切,但我总是得到:
2016-06-16 18:41:20.069 Wine Dictionary[3282:55647] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<Wine_Dictionary.DetailUI: 0x7f8a1ae2fa60>) has no segue with identifier 'SegueToDetailUI''
我已经尝试过更改方法,更改标识符等。
以下是代码的屏幕截图:http://prntscr.com/bh6e6l 以下是故事板和segue标识符的屏幕截图:http://prntscr.com/bh6f6q
答案 0 :(得分:0)
删除override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "SegueToDetailUI") {
let selectedInfo = self.NAME?[indexPath.row]
let indexPath = tableView.indexPathForSelectedRow
let destinationVC = segue.destinationViewController as! DetailUI
destinationVC.programVar = selectedInfo!
}
}
中的代码并添加此
{{1}}
假设我拼写正确(如果不仅仅是纠正我的拼写)
答案 1 :(得分:0)
尝试删除你的segue并重新创建它..
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "SegueToDetailUI")
{
if let rowselect = tableView!.indexPathForSelectedRow
{
let selectedInfo =self.NAME?[rowselect]
let moveVC:DetailUI = segue.destinationViewController as! DetailUI
moveVC.programVar = selectedInfo!
}
}
}
答案 2 :(得分:0)
由于您的segue从MainUI转到DetailUI,因此必须从MainUI(segue原点的视图控制器)运行executeSegueWithIdentifier(&#34; SegueToDetailUI&#34;)。
调用此方法将实例化DetailUI视图控制器,并将其推送到屏幕上。
新创建的DetailUI视图控制器的配置发生在方法MainUI.prepareForSegue中。那就是你提供programVar属性的地方。
记住:当您使用故事板时,您永远不会永远不会自己实例化视图控制器(let vc = MyViewController()
)。相反,您将始终使用NSStoryboard.instantiateViewController ...方法或NSViewController.performSegue(...)之一。