0

我有一個奇怪的問題。我在這裏和互聯網上發現了一些tipps,但我沒有解決我的問題。所以這裏是發生了什麼:popViewController不會刪除UINavigationBar項目

我有一個TabBar導航9項。所有這些都是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]; 
    } 
} 

我希望有人可以提供幫助。我嘗試了我發現的一切,沒有任何幫助。 : -/

感謝和最美好的祝願, 托馬斯

回答

0

嘗試設置:

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

,因爲你很可能在等待動畫完成。

+0

要麼你或你需要重置你的UINavigationController的rootView。 – Brirony 2011-03-04 01:18:05

+0

不幸的是,這並沒有幫助。我已經嘗試過,沒有運氣。什麼「重置rootView」是什麼意思? – thomas 2011-03-04 05:53:43

+0

[UINavigationController class Reference](http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html)navigationController的rootView是viewController,它位於位置0(導航堆棧的底部)。 – Brirony 2011-03-04 17:53:21