2013-03-26 75 views

回答

4

要更多的屏幕選擇視圖控制器,你應該首先選擇更多視圖控制器,因爲它顯示在前面的回答:

[tabBarController setSelectedViewController: [tabBarController moreNavigationController]] 

,然後執行pushViewController方法更視圖控制器

[[tabBarController moreNavigationController] pushViewController:neededViewController animated:NO] 

或者使用更好的方式:

[tabBarController setSelectedViewController: neededViewController ] 
+0

我如何找到neededViewController?如果我創建一個新的(H​​ome * homeView = [[Home alloc] init]; [tabBarController setSelectedViewController:homeView];)在運行時xcode告訴我「終止應用程序由於未捕獲異常'NSInvalidArgumentException',原因:' - [UITabBarController setSelectedViewController :]只能選擇標籤欄控制器視圖控制器列表中的視圖控制器。「 Home是由uitabbar管理的視圖控制器 – 2013-03-27 08:58:27

+0

只有當它包含在tabBarController.viewControllers數組中時,纔可以選擇所選視圖控制器。 [tabBarController setSelectedViewController:[tabBarController.viewControllers objectAtIndex:neededIndex]] – 2013-03-27 09:09:02

+0

謝謝!此代碼完美工作!我可以要求您將它添加到您的答案中嗎(使其更加完整)? [tabBarController setSelectedViewController:[tabBarController.viewControllers objectAtIndex:7]]; – 2013-03-27 09:09:28

1
[myTabBarController setSelectedViewController: viewControllerThatYouNeed]; 

編輯:

嘗試使用的UITabBarController的selectedViewController財產。 從蘋果文檔:

塊引用 在iOS 3.0及其以後,你可以使用這個屬性來選擇任何在viewControllers屬性視圖控制器。這包括由更多導航控制器管理的視圖控制器,其標籤欄項目在標籤欄中不可見。

+0

這導致了更多的觀點。如果我想去更多視圖內的項目? – 2013-03-26 12:53:04

+0

我無法獲得代碼來選擇正確的視圖控制器..如果我創建一個新的(家庭* homeView = [[家庭分配]初始化]; [tabBarController setSelectedViewController:homeView];)xcode在運行時告訴我「終止應用程序到期未捕獲異常'NSInvalidArgumentException',原因:' - [UITabBarController setSelectedViewController:]只能選擇標籤欄控制器視圖控制器列表中的視圖控制器。「 Home是由uitabbar管理的視圖控制器 – 2013-03-27 09:05:34

相關問題