iOS Unwind Segue在嵌入导航控制器时停止工作

时间:2013-04-07 10:31:02

标签: ios storyboard segue

我有一个UIViewController,它有一个按钮,可以作为表单执行UIViewController的模态segue。在该表单上是一个取消按钮,其中展开segue回到原始的UIViewController。这似乎非常愉快地工作并且驳回了表单。

当我选择原始的UIViewController并在XCode中选择嵌入导航控制器中的选项时,展开segue似乎不再起作用,并且模态表单将不再取消。

我确信有一个简单的解释,但它目前正在躲避我,所以欢迎任何想法。

感谢。

3 个答案:

答案 0 :(得分:13)

我不知道你为什么会得到你所看到的行为,我也看到了。它适用于页面表和表单表示,但不适用于全屏。但是,展开segue仍然会调用放在原始控制器中的方法(将unwind segue连接到的控制器)。因此,您需要做的就是在该方法中添加一行:

[self dismissViewControllerAnimated:YES completion:nil];

答案 1 :(得分:0)

这已经回答了,但上面没有给我完整的解决方案,所以我想我会分享我的。

对我来说,unwind方法从未被调用,所以我不能做上面描述的。相反,我做了一个带有IBAction的简单按钮并调用它。下面的Swift示例:

@IBAction func cancelToRecipeController() {
    self.dismissViewControllerAnimated(true, completion: nil)
    print("cancel to recipe controller ran")
}

感谢@rdelmar上面的方法调用!

(这是为ios 9添加的)

答案 2 :(得分:0)

 self.dismissViewControllerAnimated(true, completion: nil)

“dismiss”对我不起作用,但popToRoot效果很好。

 [self.navigationController popToRootViewControllerAnimated:YES];