1

我有一个基地UINavigationController和3个UIViewController

让我们打电话给他们Home, VC2, and VC3

我有一个故事板从HometoVC2和 from VC2to 开始VC3

现在...如果我[self.navigationController popToRootViewControllerAnimated:YES]从 VC3 中调用,我会被带回navigationItemVC2 顶部栏的“主页”!什么!?

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

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

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

4

1 回答 1

1

好的,我弄清楚了问题所在。

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

所以它更像是这样的:

Splash > Home > VC2 > VC3

不知何故,来自 VC3 的 popToRoot 将转到Home,而不是Splash. VC2不知何故,在那之后出现了导航栏。因此,在Home's内部viewDidAppear,我添加self.navigationController.viewControllers = [NSArray arrayWithObject:self];了导航栏问题并自行解决。

于 2012-12-21T22:12:17.790 回答