2012-07-07 57 views
0

我有一個基於tabbar的iphone應用程序,其中每個選項卡本身就是一個導航控制器。因此在每個選項卡視圖中都有子視圖,我將其推送到self.navigation控制器。每次選擇標籤時如何獲得相同的視圖?

問題是當我按下一個視圖,然後選擇花葯標籤,然後回滾我選擇相同的標籤,然後它會顯示推視圖。不是我想要的觀點來。

任何人都有想法如何做到這一點?任何人都可以幫助我實現rootview每次選擇標籤?

回答

2

對於UINavigationControllers來說,保存它們的視圖控制器堆棧是正常的,並且每次切換IUTabBarController選項卡時都會顯示最多的視圖控制器。那麼,你是說你想每個UINavigationController在每次標籤欄離開時都釋放棧?如果是的話,再看看UITabBarControllerDelegate文檔:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITabBarControllerDelegate_Protocol/Reference/Reference.html#//apple_ref/doc/uid/TP40006932

在這裏,你有方法,這將告訴您標籤切換時:

– tabBarController:shouldSelectViewController: 
– tabBarController:didSelectViewController: 

我假設你知道委託協議如何工作。

然後看看該文檔的UINavigationController,它有方法從堆棧中「彈出」視圖控制器:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006934

這將彈出到頂部(「根」)視圖控制器:

– popToRootViewControllerAnimated: 

注意的一點是 - 在一般用戶期望的UITabBarController標籤保留了同樣的觀點,當他們最後切換到它。

哦,還有,你在說什麼是當一個tabbar標籤被點擊兩次(即當它被點擊時,當該tabbar標籤已被選中)時的默認行爲。

+0

+1爲澄清和答案的詳細信息。真棒:) – 2012-07-07 11:43:36

+0

好警惕,但是當我加載tabbar我在一個view.on按鈕點擊它我添加第二view.so我的部分是正確的嗎?是嗎?也可以幫助我如何我可以在didselect方法中執行poptorootviewcontrooler代碼? – hacker 2012-07-08 11:22:54

+0

我被添加到這樣的didselect方法[viewController.navigationController popToRootViewControllerAnimated:YES];但它不工作? – hacker 2012-07-08 11:35:05

相關問題