无法使用赛格瑞
问题描述:
您好我是新来的迅速和Xcode的6所以我试图执行SEGUE从细胞跳转到如下图所示的viewController另从tableViewCell跳到另一个的viewController: -无法使用赛格瑞
我也试着用下面的代码编程去 - :
-override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
println("selected row \(indexPath.row)")
self.performSegueWithIdentifier("segueCust", sender: self)
}
我依然不能够执行,如果上面的代码,然后应用程序崩溃与以下错误运行
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<swiftDemo.DetailTableViewController: 0x7fdab1606ee0>) has no segue with identifier 'segueCust''
不知道为什么这个错误即将发生,因为在故事板中我已经为此segue指定了这个标识符。
此外,下面的segue方法从未被调用过。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!)
我也有添加一个按钮,并从一个的viewController到另一个那么它工作正常进行使用故事板SEGUE。 到目前为止,我可能会失踪或做一个愚蠢的错误。任何帮助,将不胜感激。 在此先感谢。
答
如果您想以编程方式调用segue与self.performSegueWithIdentifier
,它需要从视图控制器本身链接。 (这就是你的代码中的self
。)从你的图像中,你似乎已经将它连接到了单元而不是视图控制器。
(为什么电池连接不会自动工作,我不知道。)
答
我把它固定如下: -
//Embedded my tableVC with navigationController and provided that navigationController a storyboard id.
//Used that navigationController and presented it on my current VC as below.
var storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var vc : UINavigationController = storyboard.instantiateViewControllerWithIdentifier("naviVC") as UINavigationController
self.presentViewController(vc, animated: true, completion: nil)
连接。另外我与其他VC的tableView细胞(如图所示下面),其他部分工作顺利。 在下面我提供了导航控制器与故事板ID。
1.删除segue并尝试再次添加。 – Raghav 2014-09-22 12:06:50
@raghav我没有删除它并添加了很多次。也试图从viewController中的按钮继续到另一个,并且它在那里工作得很好,但在单元格内。 – nikhil84 2014-09-22 12:09:46
从外观上看,一切对我来说都是正确的。当segue连接时,它会隐式调用prepareForSegue,在你的情况下,这不会发生。试验和错误方法检查原型单元的**连接检查器窗口**是否提到了segue名称。 – Raghav 2014-09-22 12:19:12