0

プログラムで別のタブに切り替えて、ナビゲーション スタックの最初のビューに移動するにはどうすればよいですか?

別のタブに切り替えることができます。

self.tabBarController.selectedIndex = 4;

ただし、そのタブのナビゲーション スタックで別のビュー コントローラーを切り替える必要もあります。

それ、どうやったら出来るの?

上記のコードを実行するとすぐに、ナビゲーション スタックに現在読み込まれているビュー コントローラーに切り替わります。

ビュー コントローラーは、アプリ デリゲートのタブ バーに追加される 5 つのナビゲーション コントローラーに読み込まれます。

4

3 に答える 3

4

に があると仮定UINavigationControllerしますUITabBarController。その場合はpopToRootViewControllerAnimated:、最初のビュー コントローラーに移動するために使用できます。

int index = 4;
self.tabBarController.selectedIndex = index;
[self.tabBarController.viewControllers[index] popToRootViewControllerAnimated:NO];
于 2012-10-01T21:09:15.497 に答える
0

タブ バー コントローラーの rootViewController がナビゲーション コントローラーであると仮定すると、それへの参照を取得してから、目的のビュー コントローラーにポップします。タブを切り替える前にこれを行うこともできます。

編集: UINavigationController をサブクラス化して、タブが切り替えられたときにナビゲーションコントローラーに rootViewController にポップするように指示するタブバーコントローラーのデフォルトの動作を防ぐことを忘れがちです (これは、タブをタップしたときの動作であり、発生するかどうかはわかりません)これは私が使用するコードです:

- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
{
    //NSLog(@"popToRootViewControllerAnimated");

    return @[];
}
于 2012-10-01T21:08:07.867 に答える