与 ios8、popToViewController 和 UIViewControllerHierarchyInconsistency 崩溃

Posted

技术标签:

【中文标题】与 ios8、popToViewController 和 UIViewControllerHierarchyInconsistency 崩溃【英文标题】:crash with ios8, popToViewController and UIViewControllerHierarchyInconsistency 【发布时间】:2014-09-14 12:01:30 【问题描述】:

ios7、Xcode 和 5 一切正常 - 在升级到 Xcode 6 和 iOS8 之后,应用程序突然崩溃,但它一直运行良好。

崩溃时显示的错误是:

由于未捕获的异常而终止应用程序 'UIViewControllerHierarchyInconsistency',原因:'添加根视图 控制器作为视图的子级 控制器:'

我设法找到了造成问题的单行:

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:4] 动画:YES];

该应用程序在锻炼时最多可添加 8 个视图;练习完成后,回到最后一个视图,也就是练习的菜单,所以 4. 有点硬编码,但总是如此简单高效。

我不知道 popToViewController 是否正在这样做。

任何帮助或想法将不胜感激。

【问题讨论】:

【参考方案1】:

我终于找到了一个可行的解决方案 - 所以这里是完成/记录之前:

UINavigationController* savedUinvc = self.navigationController;
                UIViewController *one = nil;
                one = [savedUinvc  popViewControllerAnimated:NO];
                UIViewController *two = nil;
                two = [savedUinvc  popViewControllerAnimated:NO];
                UIViewController *three = nil;
                three = [savedUinvc  popViewControllerAnimated:YES];

【讨论】:

以上是关于与 ios8、popToViewController 和 UIViewControllerHierarchyInconsistency 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

iOS8 扩展:将 CoreData 与包含的应用程序同步

iOS8 Size Classes的理解与使用

iOS8/Swift 奇怪的空行为与来自 REST 服务的响应

iOS8与以前版本比较,添加的新特性

iOS8 - BLE 唤醒应用

iOS 自动布局 ios 7 与 ios 8