放松瞄准 - 在哪里拖出口?

时间:2015-12-01 05:12:17

标签: ios xcode swift segue unwind-segue

我试图了解unwind segue是如何工作的。首先,我创建了3个ViewControllers。

GlobalVC
 -LoginVC
 -RegisterVC 

我将初始页面设置为GlobalVC(只有经过身份验证的用户才能看到)。我设置了一个segue:

GlobalVC to LoginVC名为globalToLoginLoginVC to RegisterVC名为loginToRegister。这是我的故事板:

enter image description here

对于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'

enter image description here

1 个答案:

答案 0 :(得分:3)

展开操作方法在目标视图控制器中定义(例如,在GlobalVC)。

@IBAction func unwindToGlobal(segue: UIStoryboardSegue) {
     // this may be blank
}

然后,当您按下按钮进行此操作时,不要拖动到代码示例,而是拖到场景上方的“退出插座”图标:

enter image description here

有关更多屏幕快照,请参阅this answer