我在测试我的应用时遇到了崩溃。以下图片是我的故事板:
我在View Controller中有代码:
@IBAction func unwindToHomeScreen(segue:UIStoryboardSegue) {
}
"添加新项目"有一个"取消"按钮,我控制 - 拖动到"退出"顶部的图标和unwindToHomeScreen
的链接,它可以正常工作。
"添加新项目"有一个类AddTableViewController
和我在里面写的代码:
@IBAction func save() {
// Execute the unwind segue and go back to the home screen
performSegueWithIdentifier("unwindToHomeScreen", sender: self)
}
我控制 - 拖动" Save"按钮到func,但是当我点击按钮时应用程序崩溃
我可以使用dismissViewControllerAnimated(true, completion: nil)
,但我只是想知道为什么performSegueWithIdentifier
无效?
我在dropbox.com/s/hpybgg9x67rtqng/foodpinstatictable.zip?dl=0阅读了代码并尝试制作一个并使用performSegueWithIdentifier
这个例子进行练习,我没有看到她的segue标识符,有什么区别?< / p>
答案 0 :(得分:58)
你实际上没有给segue一个标识符。 unwindToHomeScreen
是一个可以调用的函数;您正在寻找的是您的segue标识符,它在Interface Builder中设置如下:
在这个例子中,我有一个按钮通过Interface Builder连接到下一个视图(如“Interface Builder”)和在我的视图控制器中连接到此IBAction
的按钮(“编程”) :
@IBAction func goToNextView(sender: UIButton!) {
self.performSegueWithIdentifier:("go", sender: self)
}
在任何情况下,您缺少的是实际标识符,可以在Interface Builder中创建的segue的属性中设置。
答案 1 :(得分:3)
我发现因为我重命名了我的视图控制器,所以我需要删除并重新创建segue。
答案 2 :(得分:0)
就我而言,重新排序嵌入
标签栏控制器 导航控制器 vc(包含按钮-点击按钮可启动“显示,例如推送”搜索)
太固定导航栏中的标题
答案 3 :(得分:0)
iOS 12和更早版本(iOS 13似乎没有遇到相同的问题)的可能问题可能是由于从视图控制器viewdidLoad()回调调用了 performSegue(withIdentifier:,sender :)这个事实引起的。
为了避免出现上述问题,您绝对必须从 viewDidAppear(_ animation:Bool)回调中调用它。
那肯定会节省数小时的头发修剪时间……
答案 4 :(得分:0)
迅速4:
有时我们必须清理构建文件夹,然后重试:=)
ctrl拖动新的segue并为其命名后,以编程方式将其用作:
performSegue(withIdentifier: "goToMyNewViewController", sender: self)
答案 5 :(得分:0)
我遇到了同样的问题。
我所做的只是:
我在故事板中选择了转场指示器。
已删除。
然后创建一个具有相同标识符的新 segue。 Boom,它有效。
答案 6 :(得分:-1)
对我来说 - &gt;单击视图控制器之间的关系箭头,然后选择属性检查器,有标识符给出名称并选择推送类完成...