7

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

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

我敢肯定有一个简单的解释,但它目前正在逃避我,所以欢迎任何想法。

谢谢。

4

3 回答 3

13

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

[self dismissViewControllerAnimated:YES completion:nil];
于 2013-04-07T15:54:43.570 回答
0

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

对我来说,从未调用过 unwind 方法,因此我无法执行上述操作。相反,我用 IBAction 制作了一个简单的按钮并调用它。下面的快速示例:

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

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

(这是为 ios 9 添加的)

于 2015-11-26T11:33:35.793 回答
0
 self.dismissViewControllerAnimated(true, completion: nil)

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

 [self.navigationController popToRootViewControllerAnimated:YES];
于 2016-04-12T09:07:18.807 回答