performSegueWithIdentifier没有带标识符的segue

Ian*_*Ian 23 xcode ios swift

我在测试我的应用时遇到了崩溃.以下图片是我的故事板:

故事板

我在View Controller中有代码:

@IBAction func unwindToHomeScreen(segue:UIStoryboardSegue) {

}
Run Code Online (Sandbox Code Playgroud)

"添加新项目"的视图有一个"取消"按钮,我控制 - 拖动它到顶部的"退出"图标并链接到unwindToHomeScreen,它工作正常.

"添加新项"有一个类AddTableViewController和我在里面写的代码:

@IBAction func save() {
    // Execute the unwind segue and go back to the home screen
    performSegueWithIdentifier("unwindToHomeScreen", sender: self)
}
Run Code Online (Sandbox Code Playgroud)

我控制 - 将"保存"按钮拖动到func,但是当我单击按钮时应用程序崩溃

我可以使用dismissViewControllerAnimated(true, completion: nil),但我只是想知道为什么performSegueWithIdentifier不能工作?

我在dropbox.com/s/hpybgg9x67rtqng/foodpinstatictable.zip?dl=0上阅读了代码并尝试制作一个并使用performSegueWithIdentifier这个例子进行练习,我没有看到她的segue标识符,有什么区别?

Ast*_*oCB 61

你实际上没有给segue一个标识符.unwindToHomeScreen是一个你可以打电话的功能; 您正在寻找的是您的segue标识符,它在Interface Builder中设置如下:

设置标识符

在这个例子中,我有一个按钮通过Interface Builder连接到下一个视图,如你所描述的("Interface Builder")和一个IBAction在我的视图控制器中连接到它的按钮("Programmatically"):

@IBAction func goToNextView(sender: UIButton!) {
    self.performSegueWithIdentifier:("go", sender: self)
}
Run Code Online (Sandbox Code Playgroud)

在任何情况下,您缺少的是实际标识符,可以在Interface Builder中创建的segue的属性中设置.


Kri*_*ian 5

斯威夫特 4:

有时我们必须清理构建文件夹,然后再试一次。

在 ctrl 拖动新 segue 并为其命名后为我工作,然后以编程方式使用它:

performSegue(withIdentifier: "goToMyNewViewController" , sender: self)
Run Code Online (Sandbox Code Playgroud)