popViewController 不会删除 UINavigationBar 项目
Posted
技术标签:
【中文标题】popViewController 不会删除 UINavigationBar 项目【英文标题】:popViewController does not remove UINavigationBar items 【发布时间】:2011-03-03 18:31:17 【问题描述】:我有一个奇怪的问题。我在这里和互联网上找到了一些提示,但我没有解决我的问题。这就是发生的事情:
我有一个包含 9 个项目的 TabBar 导航。它们都是 UINavigationItems。在其中一个上,我在某些条件下将默认 viewController 替换为另一个。
为此,我使用 popViewController 和 pushViewController。这工作得很好,但我有一个问题,UINavigationBar 与它不同步。效果是我看到了正确的视图,但是当我单击“返回”按钮时,它会切换到一个空的导航栏项目,然后我会从那里回到 rootViewController(例如“更多”)。
这是我的代码:
- (void)viewWillAppear:(BOOL)animated
if ([[myAppDelegate bcUser] userLoggedIn])
// user is logged in
MyDataLoggedInViewController *loggedInViewController = [[[MyDataLoggedInViewController alloc] initWithNibName:@"MyDataLoggedInView" bundle:nil] autorelease];
UINavigationController *navController = self.navigationController;
[[self retain] autorelease];
[navController popViewControllerAnimated:YES];
[navController pushViewController:loggedInViewController animated:YES];
我希望有人可以提供帮助。我尝试了我发现的一切,但没有任何帮助。 :-/
感谢和最良好的祝愿, 托马斯
【问题讨论】:
【参考方案1】:尝试设置:
[navController popViewControllerAnimated:NO];
[navController pushViewController:loggedInViewController animated:NO];
因为您很可能正在等待动画完成。
【讨论】:
要么,要么你需要重置你的 UINavigationController 的 rootView。 不幸的是,这没有帮助。我已经尝试过了,没有运气。 “重置rootView”是什么意思? UINavigationController class Reference navigationController 的 rootView 是位于导航堆栈位置 0(底部)的 viewController。以上是关于popViewController 不会删除 UINavigationBar 项目的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 的 iphone 和 iPad 中显示 UI PopViewController 中心