接收者没有带标识符的转场,尽管转场实际上是声明的
Posted
技术标签:
【中文标题】接收者没有带标识符的转场,尽管转场实际上是声明的【英文标题】:Receiver has no segue with identifier, though the segue is actually declared 【发布时间】:2018-06-29 12:27:36 【问题描述】:我正在一个新的 Swift 项目中工作,我正在尝试在按下按钮时执行segue
的简单任务。但是,每当我尝试触发 segue 时,都会弹出以下错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<Ma2Mi.LandingViewController: 0x7f99c65122b0>) has no segue with identifier 'showLogin''
比较简单,除了实际上有一个名为showLogin
的segue:
(顶视图控制器的类型为LandingViewController
。)
这是调用 segue 的方式:
loginButton.addAction
self.performSegue(withIdentifier: "showLogin", sender: nil)
这么简单的任务怎么会失败?也许是一个错误,或者我忽略了什么?
谢谢。
【问题讨论】:
LandingViewController
的实例是如何创建的?
@Paulw11 这都是故事板。 LandingViewController
是这个故事板的根 viewController UINavigationController
也许你 ctrl 从 UI 元素而不是故事板中的视图控制器实例拖动?
@AndréSlotta 我已经尝试重新建立连接\
可能是segue名称中的空格?如果不是,这没有任何意义。 :)
【参考方案1】:
您是否在触发 segue 的 ViewController 上使用了所需的 init()
函数?在我删除它之前,我遇到了同样的问题。
【讨论】:
以上是关于接收者没有带标识符的转场,尽管转场实际上是声明的的主要内容,如果未能解决你的问题,请参考以下文章