【发布时间】:2013-11-11 12:34:10
【问题描述】:
我一直在处理这个(有点)随机错误,但无法找出问题所在。上下文:我正在创建一个 UISplitView iPad 应用程序,该应用程序在主视图中有一个 UINavigationController:
主菜单为红色,子菜单为绿色,主要内容为紫色。
这个 UINavigationController 没有填满整个主视图,因为我需要一些空间来拥有一个垂直菜单。当用户选择垂直侧菜单上的按钮时,它会为 UINavigationController 设置一些新内容以显示带有选项的 UITableView。我对每个菜单选择所做的是:
[self.subMenu setViewControllers:@[subMenuViewController] animated:YES];
发生的情况是我不需要保留菜单历史记录,所以我所做的就是每次都为 subMenu 设置一个新的根视图控制器。
问题是当我开始弄乱设备方向时。它没有明确的模式,但有时,在旋转时,我的应用程序会崩溃。现在,当我使用 Instruments 运行它时,我得到的是:
167 Zombie -1 00:32.101.527 UIKit -[UITableView _spacingForExtraSeparators]
有趣的是,错误访问发生在 subMenu 的前一个根视图控制器上。因此,如果我点击“事件”,然后点击“播客”,则会在尝试访问“EventsViewController”时发生错误访问。
所以我猜测在替换 subMenu UINavigationController 的根视图控制器的方式上有些地方不对劲,但我不确定它是什么。也许我需要确保在设置新的根视图控制器之前释放当前的根视图控制器?
非常感谢任何帮助。 :)
【问题讨论】:
-
您正在调用一个已释放的实例。在您的应用程序中添加一个“异常断点”并尝试复制您的问题:应用程序应该在导致您的问题的确切点停止。
-
@MarcoPace 我这样做了,但它总是给我在 UIApplicationMain 上的错误访问权限
-
您在拆分视图控制器中使用
viewContainers吗?
标签: ios objective-c uinavigationcontroller orientation