我一直在处理这个(有点)随机的问题,但无法找出问题所在。情况是这样的:我正在创建一个UISplitView iPad应用程序,其中包含一个UINavigationController作为Master视图中的子视图:
主菜单为红色,子菜单为绿色,主内容为紫色。
由于我需要一些空间来放置垂直菜单,因此此UINavigationController并未填充整个Master视图。当用户在垂直侧面菜单上选择按钮时,会设置新的东西到UINavigationController以显示具有选项的UITableView。我在每个菜单选择上所做的是:
![主菜单为红色,子菜单为绿色,主内容为紫色](https://istack.dev59.com/OuPIB.webp)
[self.subMenu setViewControllers:@[subMenuViewController] animated:YES];
发生的情况是我不需要保留菜单历史记录,所以我每次都会为subMenu设置一个新的根视图控制器。
问题出现在当我开始调整设备方向时。它没有明显的模式,但有时候,在旋转时,我的应用程序会崩溃。现在,当我使用Instruments运行它时,这就是我得到的结果:
167 Zombie -1 00:32.101.527 UIKit -[UITableView _spacingForExtraSeparators]
有趣的是,访问错误发生在子菜单的上一个根视图控制器上。所以如果我点击“Events”,然后再点击“Podcasts”,那么在尝试访问“EventsViewController”时会发生访问错误。
所以我猜测,在替换子菜单UINavigationController的根视图控制器的方式上存在问题,但我不确定是什么问题。也许我需要确保当前的根视图控制器在设置新的根视图控制器之前被释放了?
非常感谢任何帮助。 :)
viewContainers
? - danypata