由于没有标识符错误的转场,无法执行转场
Posted
技术标签:
【中文标题】由于没有标识符错误的转场,无法执行转场【英文标题】:Unable to perform segue due to no segue with identifier error 【发布时间】:2017-02-24 03:30:58 【问题描述】:当用户在警报中点击“确定”按钮时,我该怎么做才能将用户带到自定义视图控制器?
我有一个主控制器 -> 导航控制器 -> 第二个视图控制器。
主视图控制器有一个 segue “mainStoryBoard” 在第二个视图控制器上生成警报。
这就是我所拥有的
let alertController = UIAlertController(title: "title", message: "message", preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: action
in self.performSegue(withIdentifier: "mainStoryBoard", sender: self)
))
present(alertController, animated: true, completion: nil)
return
我得到的错误如下:
由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'Receiver () has no segue with identifier 'mainStoryBoard'
我已将标识符设置为“mainStoryBoard”,但仍然没有成功。
任何指导将不胜感激。
【问题讨论】:
您发布的代码有什么问题? @rmaddy 我得到了 -Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<udidtoolapp.Setup: 0x1014684b0>) has no segue with identifier 'mainStoryBoard''
确保你给 segue 的标识符完全等于“mainStoryBoard”
也许these search results 会有所帮助。
您确定设置正确吗?您点击了 segue,然后转到属性检查器并使用“mainStoryBoard”(区分大小写)填写“标识符”字段?
【参考方案1】:
感谢@MikeG 的指导,我得以让它工作。
问题是我创建了一个从main view controller
到second view controller
的segue。
解决方案
从second view controller
到main view controller
创建一个segue
,如果你有一个navigation controller
,创建从second view controller
到navigation controller
的segue。
代码保持不变。
【讨论】:
【参考方案2】:您是如何加载主视图控制器的?尝试使用 instantiateviewcontrollerwithidentifier 而不是 alloc init 进行实例化。如果您仍然遇到此问题,请尝试清理项目并运行。
【讨论】:
以上是关于由于没有标识符错误的转场,无法执行转场的主要内容,如果未能解决你的问题,请参考以下文章