質問

タブバーの特定のタブをプログラムで開く必要があります。

UITabBarControllerから次のメソッドを呼び出してみました:

self.selectedViewController = myVController;

機能しません。

タブを開く正しい方法は何ですか?

ありがとう。

更新:次のコードを試しました:

self.selectedViewController = [ [self viewControllers] objectAtIndex: 0];

これにより望ましいタブが開きます(選択されています)が、アクティブビューは更新されていません。

役に立ちましたか?

解決

selectedIndex プロパティに関して、Appleのドキュメントは次のように述べています:

  

以前のバージョンのiPhone OS   バージョン3.0、このプロパティは反映します   選択されたタブバー項目のインデックス   のみ。この値を設定しようとしています   あるView Controllerのインデックス   タブバーには表示されませんが、   代わりに、その他のナビゲーションによって管理されます   コントローラー、効果はありません。

おそらくこれがあなたの問題だったのですか?

可能な回避策の1つは、独自の UITabBar を使用して、独自のビューを処理することです。その後、次のようなことができます:

[tabBar setSelectedItem:[tabBar.items objectAtIndex:1]];

UITabBarDelegate を実装し、この関数を定義して、アイテム選択メッセージを取得し、ビューを手動で切り替えます。 (高度な UITabBarController 機能を使用している場合、努力する価値はないかもしれません。)

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{

}

他のヒント

私がやった方法は、 self.tabBarController.selectedIndex = 1 を使用することです(最初のタブはインデックス0にあります)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top