我创建了一个场景并试图将类链接到场景并使用故事板创建一个segue并使用self.performSegueWithIdentifier("SegueID", sender: self)
并且无论我做了什么(即干净的构建)我仍然得到相同的错误 “原因:'Receiver()没有标识符'SegueID''”
我认为解决这个问题的最佳方法是在这个实例中避免segue。
那么有没有办法从代码中的视图调用转换到另一个视图而不在swift中使用segue?
修改 我已经尝试了所有三种方式但无济于事。在故事板中两个场景之间创建一个segue并给它命名的最常见方式,在我的案例“详细信息”中,但是segue无法识别。
所以我尝试了从笔尖加载它的下一种方法,然后将该笔尖推入导航堆栈,但是在编译和构建程序时,我点击按钮呈现给新的视图控制器,除了函数println执行。
尝试手动使用目标控制器只是不起作用。 instantiateViewControllerWithIdentifier需要一个字符串并抱怨调用中有太多参数
答案 0 :(得分:3)
您的代码无效,因为您需要在故事板中设置一个带有特定ID的segue,并在调用performSegueWithIdentifier
时将其作为参数传递。因此,在您的情况下,您需要创建ID为"SegueID"
的segue,因为这是您传递给该调用的字符串。
如果您不想使用故事板进行此操作,您仍然可以直接使用UINavigationController
(毕竟,segue使用了UINavigationController
。
然后您只需手动实例化目标视图控制器(例如,使用
self.storyboard.instantiateViewControllerWithIdentifier(<your vc id from the storyboard>, animated:true)
或从笔尖加载
init(nibName:bundle:)
然后使用
将其推送到导航堆栈self.navigationController.pushViewController(<the formerly instantiaded vc>)