我有一个 UIViewController,它有一个按钮,可以将 UIViewController 作为表单执行模态 segue。在那个表单上是一个取消按钮,它带有一个展开到原始 UIViewController 的转场。这似乎非常愉快地工作并且取消了表单。
一旦我选择原始 UIViewController 并选择 XCode 中的选项以嵌入导航控制器,展开 segue 似乎不再起作用,并且模式表单将不再取消。
我敢肯定有一个简单的解释,但它目前正在逃避我,所以欢迎任何想法。
谢谢。
我有一个 UIViewController,它有一个按钮,可以将 UIViewController 作为表单执行模态 segue。在那个表单上是一个取消按钮,它带有一个展开到原始 UIViewController 的转场。这似乎非常愉快地工作并且取消了表单。
一旦我选择原始 UIViewController 并选择 XCode 中的选项以嵌入导航控制器,展开 segue 似乎不再起作用,并且模式表单将不再取消。
我敢肯定有一个简单的解释,但它目前正在逃避我,所以欢迎任何想法。
谢谢。
我不知道为什么你会看到你所看到的行为,我也看到了。它发生在页面表和表单演示文稿中,但不适用于全屏。但是,展开转场仍在调用您放入原始控制器(您将展开转场连接到的那个)中的方法。因此,您需要做的就是在该方法中添加一行:
[self dismissViewControllerAnimated:YES completion:nil];
这已经回答了,但上面并没有给我完整的解决方案,所以我想我会分享我的。
对我来说,从未调用过 unwind 方法,因此我无法执行上述操作。相反,我用 IBAction 制作了一个简单的按钮并调用它。下面的快速示例:
@IBAction func cancelToRecipeController() {
self.dismissViewControllerAnimated(true, completion: nil)
print("cancel to recipe controller ran")
}
感谢上面的@rdelmar 方法调用!
(这是为 ios 9 添加的)
self.dismissViewControllerAnimated(true, completion: nil)
“解雇”对我不起作用,但 popToRoot 效果很好。
[self.navigationController popToRootViewControllerAnimated:YES];