dismissViewControllerAnimated 关闭所有视图控制器到根 [swift]

Posted

技术标签:

【中文标题】dismissViewControllerAnimated 关闭所有视图控制器到根 [swift]【英文标题】:dismissViewControllerAnimated close all view controller to root [swift] 【发布时间】:2016-03-04 11:30:37 【问题描述】:

假设我有 4 个视图控制器

第 1 页 ----showdetail----> 第 2 页 ----showdetail----> 第 3 页 ----showdetail----> 第4页

我想用self.dismissViewControllerAnimated(true, completion: nil) 从第 4 页回到第 3 页。它在 ios 9 中运行良好,但是当我在 iOS 8 设备中尝试时,它会将所有视图控制器关闭到第 1 页

【问题讨论】:

你从哪里打电话给dismissViewControllerAnimated 你为什么使用 showdetail segue 类型?您显示 segue 类型并使用以下代码。 self.navigationController?.popToRootViewControllerAnimated(true) showdetail segue 是一种替换视图控制器.. @showdetail 我首先使用'show',当我意识到 ios 8 的错误时我更改为 showdetail。好的,我试试看 你在使用 NavigationController 吗?要仅弹出一个视图,您可以执行[self.navigationController popViewControllerAnimated:YES] 【参考方案1】:

您可能希望使用Present Modally segue 而不是Show Detail。这里对每种segues都有很好的解释What's the difference between all the Selection Segues?

【讨论】:

以上是关于dismissViewControllerAnimated 关闭所有视图控制器到根 [swift]的主要内容,如果未能解决你的问题,请参考以下文章

dismissViewControllerAnimated:completion: 导致内存崩溃

在当前动画完成之前开始dismissViewControllerAnimated

调用了dismissViewControllerAnimated,但没有解除ViewController

状态恢复后,dismissViewControllerAnimated 没有使用相同的动画

dismissViewControllerAnimated() 不会关闭视图控制器

dismissViewControllerAnimated:completion: 方法替换在 Xcode4.6.1 上不起作用