2012-02-21 87 views
0

我想從tabbar控制器完全刪除所有視圖控制器,無論它是否包含,以及在運行時將新視圖控制器 添加到tababr控制器中是否可以這樣做?做了如下的事情,它沒有給出輸出?從標籤欄控制器中完全刪除所有視圖控制器

UIViewController *thisIsTheViewControllerIWantToSetNow; 
int indexForViewControllerYouWantToReplace; 
NSMutableArray *tabbarViewControllers = [self. tabController.viewControllers mutableCopy]; 
    [tabbarViewControllers removeAllObjects]; 



self.tabController.viewControllers = [NSArray arrayWithObjects:self.moreNavController, self.logInNavController, nil];; 
+0

什麼是'self'在這個例子中,哪裏是它的'tabbar'屬性定義,並執行'tabbar'屬性包含什麼樣的價值時,上面的代碼運行嗎? – Jonah 2012-02-21 05:49:40

+0

請參閱編輯代碼 – nameless 2012-02-21 06:12:14

回答

0

假設self中給出的例子是UITabBarController實例然後試圖直接操縱其tabbar是不合適的。而是設置viewControllers屬性。 作爲UITabBarController文檔狀態:

的TabBar與此控制器相關聯的選項卡欄視圖。 (只讀)

@屬性(非原子,只讀)UITabBar *的TabBar

討論

你應該 從未嘗試操作存儲在此 屬性UITabBar對象本身。如果您嘗試這樣做,則標籤欄視圖會拋出 異常。要爲標籤欄界面配置項目,您應該將 分配一個或多個自定義視圖控制器給 viewControllers屬性。標籤欄從您指定的視圖控制器中收集所需的標籤欄 項目。

https://developer.apple.com/library/ios/documentation/uikit/reference/UITabBarController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006931-CH3-SW4

+0

我不明白,我在appdelegate.m文件中嘗試 @property(nonatomic,只讀)UITabBarController * tabController;它不工作...。 – nameless 2012-02-21 06:03:45

+0

什麼不起作用?你想達到什麼目的?你嘗試了什麼?你看到了什麼意外的結果?不要要求我猜測「不工作」是什麼意思。 您將需要對正在顯示的標籤欄控制器以及您希望顯示的視圖控制器的引用,而不是其當前內容。你有這兩種嗎? 您還需要決定哪個對象負責更改標籤欄控制器的內容。這是應用程序委託嗎? – Jonah 2012-02-21 06:32:00

相關問題