我是不是以错误的方式使用 UINavigationController?

Posted

技术标签:

【中文标题】我是不是以错误的方式使用 UINavigationController?【英文标题】:Am I using UINavigationController the wrong way?我是否以错误的方式使用 UINavigationController? 【发布时间】:2011-07-18 11:33:54 【问题描述】:

我希望 NavigationItem 保持静态,所以我想要的唯一动画必须是被推送或弹出屏幕的内容。到目前为止,我还没有找到一个干净的解决方案。

我所做的是创建 UINavigationItem 的单个实例(在 appdelegate 内)并将其分配给每个 viewControllers navigationItems。这似乎可行。在过渡期间只有内容是动画的。

所以我的第一个问题是,在多个 ViewController 上使用同一个 NavigationItem 是否合法?

我的实际问题是我打电话时

[navigationController popRootViewController:animated:] 

要返回我的主菜单,应用程序会崩溃 - 但前提是我的历史堆栈中至少有 4 个 ViewController:

NSRangeException', reason: '*** -[NSMutableArray removeObjectAtIndex:]: index 1 beyond bounds [0 .. 0]

我发现有人有同样的问题,但答案不包括我的情况:

https://discussions.apple.com/thread/1976079?start=0&tstart=0

【问题讨论】:

【参考方案1】:

beyond bounds 表示您要访问数组中不可用的对象。看起来您有一个MutableArray,其中只有一个值。请检查您的数组初始化代码。

【讨论】:

对不起,我没有说清楚是谁抛出了异常:是navigationController。所以数组是由它创建和处理的。

以上是关于我是不是以错误的方式使用 UINavigationController?的主要内容,如果未能解决你的问题,请参考以下文章

UINavigation titleView 错误

UINavigation 控制器 UIViewController 和 UItoolbar 作为子视图问题

呈现页面时出现 UiNavigation 错误

使用 UINavigation 保存后如何返回?

UINavigation 后退按钮的问题与“多页”父视图一起使用

如何添加子视图以覆盖 UINavigation barin UIViewController?