【问题标题】:popViewController does not remove UINavigationBar itemspopViewController 不会删除 UINavigationBar 项目
【发布时间】: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];
  } 
}

我希望有人可以提供帮助。我尝试了我发现的一切,但没有任何帮助。 :-/

感谢和最良好的祝愿, 托马斯

【问题讨论】:

    标签: iphone ios uinavigationcontroller uinavigationbar popviewcontroller


    【解决方案1】:

    尝试设置:

    [navController popViewControllerAnimated:NO];
    [navController pushViewController:loggedInViewController animated:NO];
    

    因为您很可能正在等待动画完成。

    【讨论】:

    • 要么,要么你需要重置你的 UINavigationController 的 rootView。
    • 不幸的是,这没有帮助。我已经尝试过了,没有运气。 “重置rootView”是什么意思?
    • UINavigationController class Reference navigationController 的 rootView 是位于导航堆栈位置 0(底部)的 viewController。
    猜你喜欢
    • 2021-06-09
    • 1970-01-01
    • 2018-10-16
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    相关资源
    最近更新 更多