看似简单的UINavigationController问题,navigationItem无法正确显示

时间:2012-12-21 07:33:16

标签: objective-c ios ios6

我有一个基数UINavigationController和3 UIViewController

我们称他们为Home, VC2, and VC3

我有一个故事板,从HomeVC2,从VC2VC3

现在......如果我从VC3中调用[self.navigationController popToRootViewControllerAnimated:YES],我将被带回VC2顶部navigationItem栏的'Home'!什么!?

如果我只是使用“后退”按钮,navigationItem顶部栏会按预期显示每个视图......

有人可以建议替代popToRootViewControllerAnimated:(BOOL)popToViewController:(UIViewController*)吗?两者都导致问题发生..

编辑:另外,只是为了进一步说明会发生什么:一旦我回到主页,VC2的navigationItem就坐在那里它包含自己的标题和后退按钮 - 如果我点击后退按钮,顶部栏滑落对了,现在顶栏是空的。同样,使用VC3时不会发生这种情况:返回 - > VC2:后退按钮返回主页。对UIKit而言似乎是一件相当糟糕的事情,但也许我错过了一些东西。

1 个答案:

答案 0 :(得分:1)

好的,我弄清楚问题是什么。

堆栈底部实际上有一个不同的视图。我正在修复别人的项目中的错误,所以我对结构有点模糊。

所以它更像是这样:

Splash > Home > VC2 > VC3

不知何故,来自VC3的popToRoot转到了Home,而不是Splash。不知何故,VC2的导航栏出现在那之后。因此,在Home的{​​{1}}内,我添加了viewDidAppear,导航栏问题已自行解决。