0

如何重置一個uinavigationview當用戶點擊返回到它在標籤欄應用如何當用戶點擊返回到它在標籤欄應用

顯示根控制器嘿重置uinavigationview顯示根控制器,

只是想知道我會怎麼做。我的委託中有navcontroller以及tabbar控制器,並且任何時候用戶單擊到另一個選項卡時,如果在單擊包含uinavcontroller的選項卡時顯示導航控制器上的rootview,它們將顯示。

這是否有意義?

尼克

回答

2

[self.navigationController popToRootViewControllerAnimated:YES];

或沒有,如果你不希望它動畫。

這樣,所有已緩存的看法仍然存在,即你不「刪除/釋放」根鑑於上述各方面的意見,除非navigationController認爲有必要。

我希望這是你要找的..

+0

OK,只是想知道我觸發,就像我怎麼鉤住到發生在用戶每次點擊選項卡上的特定選項卡視圖按鈕時包含uinavcontroller和堆棧的酒吧?謝謝你的時間。 – nickthedude 2010-02-25 23:44:41

+0

喜尼克 有必須實現使用TabBar工作中的UITabBar一樣委託方法。這就是: - (空)的TabBar:(UITabBar *)的TabBar didSelectItem:(UITabBarItem *)的項目 這是一個有點硬,沒有看到您的代碼或知道,如果你沒有在界面生成器或自己編的程序停止。但是,當用戶點擊標籤欄時,上面的方法會被調用,因此您可以從中看到哪個標籤欄被輕敲(UIBarItem),並且您需要訪問正確的navigationController。 描述你是如何做到的設置或張貼一些代碼,我來幫你得到它,「啪」 :) – RickiG 2010-02-26 00:59:22

+0

有道理我會盡力impliment是今夜。我認爲它應該工作。 – nickthedude 2010-02-26 22:47:27

0

當使用UITabBar委託方法,你必須延遲popToRootViewControllerAnimated電話。

-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 
{ 
if ([self.selectedViewController isKindOfClass:[UINavigationController class]]) { 
    UINavigationController *view=(UINavigationController *)self.selectedViewController; 
    [view performSelector:@selector(popToRootViewControllerAnimated:) withObject:nil afterDelay:.5]; 
} 
} 
1

發生在appdelegate.m代碼

if ([viewController isKindOfClass:[UINavigationController class]]) { 
    UINavigationController *nav = (UINavigationController *)viewController; 
    [nav popToRootViewControllerAnimated:NO]; 
} 
相關問題