我试图了解unwind segue是如何工作的。首先,我创建了3个ViewControllers。
GlobalVC
-LoginVC
-RegisterVC
我将初始页面设置为GlobalVC(只有经过身份验证的用户才能看到)。我设置了一个segue:
GlobalVC to LoginVC
名为globalToLogin
,LoginVC to RegisterVC
名为loginToRegister
。这是我的故事板:
对于registerToLogin方向,我使用了这种解决方法(在RegisterVC中),但看起来有点难看。
@IBAction func unwindToLogin(sender: AnyObject) {
//Dismiss View
dismissViewControllerAnimated(true, completion: nil)
}
但是,现在我正试图从LoginToGlobal
首先,我选择了Login按钮,将其拖到LoginVC:
@IBAction func loginButton(segue: UIStoryboardSegue) {
performSegueWithIdentifier("unwindToGlobal", sender: self)
}
设置segue: UIStoryboardSegue
后,现在可以右键单击“退出”。但是,我在这里感到困惑。无论我试图将Exit中的圆圈拖到,它都会出错:
由于未捕获的异常终止应用' NSInvalidArgumentException',>原因:'接收方(0x7fdd2068a480>)没有带标识符的segue' unwindToGlobal''
我应该在哪里拖动圆圈? (我一直看到Unwind segue to 'Exit'
)
答案 0 :(得分:3)
展开操作方法在目标视图控制器中定义(例如,在GlobalVC
)。
@IBAction func unwindToGlobal(segue: UIStoryboardSegue) {
// this may be blank
}
然后,当您按下按钮进行此操作时,不要拖动到代码示例,而是拖到场景上方的“退出插座”图标:
有关更多屏幕快照,请参阅this answer。