2012-03-09 30 views
1

私は既に検索を使用していますが、回答が見つかりませんでした。プログラムでselectedViewControllerプロパティを使用してタブを切り替える

次のように切り替えるようにしよう:

[self. tabBarController.selectedViewController OptionsViewContorller]; 

と、このような:

[self.tabBarController.selectedViewController = self.tabBarController.viewControllers  objectAtIndex:3]; 

が、それは動作しません、私も

self.tabBarController.selectedIndex 

を変更しようとしたアドバイスが、ビューではなくタブバーでのみ変更されます。

+0

iOS SDKのどのバージョンをお使いですか? –

答えて

6

これは動作するはずです。

self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:3]; 
+0

それは選択したアイコンのタブバーを変更するだけですが、ビューは変更されません。 –

+0

エラーやスムーズはありませんが、動作しません。 –

+0

[self.view setNeedsDisplay];を追加しようとしました。同じでも –

0
// viewControllerIndex is an int describing the position of the viewController 
// in the tab bar array index 
[self.tabBarController setSelectedIndex:viewControllerIndex]; 
+0

それは私のために働かない。 –

+0

それは選択したアイコンのタブバーを変更するだけですが、ビューは変更されません。 –

+0

タブバーのアイコンが変わっている場合は、表示コントローラーを変更しているように聞こえます。タブバーのビューが変更されていることを認識するのに十分ですか? – Damo

1

//このコードは、Tabbar View Controller 0、最初のView Controllerに切り替えるために使用しています。

self.tabBarController.selectedIndex = 0; 

UIViewController *controller = [self.tabBarController.viewControllers objectAtIndex:0]; 
if ([controller isKindOfClass:[UINavigationController class]]) { 
    [((UINavigationController*)controller) popToRootViewControllerAnimated:false]; 
} 

[self.navigationController popToRootViewControllerAnimated:true]; 
+0

ありがとう、私はしようとします! –

+0

この回答をいただきありがとうございます。それは私の多くの時間を節約しました... –

0

あなたUITabBarControllerクラスから切り替えたい場合は、あなたが-viewDidAppear:animated:

[((UIViewController *) self.viewControllers[0]).tabBarController setSelectedIndex:1]; 

にこのコードを記述する必要があり、このヘルプを願っています。

関連する問題