1

では、わかりやすく説明しますと、

シングルビューアプリケーションプロジェクトのメインビューコントローラーであるviewcontrollerにtabbarcontollerがあります。

サブビューとしてviewcontrollerにtabbarcontrollerを追加しました。tabbarcontroller では、下の画像のように 2 つのナビゲーション コントローラーを追加しました。

ここに画像の説明を入力

3 つ (First、Second、Third という名前) のビューコントローラーを新しいファイルとして追加しました。

以下のコードを使用して、最初のタブであるビューコントローラーから別のビューコントローラーに移動すると、

third =  [[Third alloc] initWithNibName:@"Third" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:third animated:YES];

次に、tabbarcontroller の下のタブをクリックして、2 番目のタブに切り替えます。

その後

3番目のView Controllerのボタンをクリックして次のタブ(最初のタブ)に切り替えると、

-(IBAction)switchtab
{
    vc.tabctrl.selectedIndex=0;
    //vc is the main viewcontroller to which the tabbarcontoller(tabctrl) added as subview
}

次のタブに切り替えた後、そこでルートビューコントローラーをポップする必要があります。以下のコードを試しました

-(IBAction)switchtab
{
    vc.tabctrl.selectedIndex=0;
    [vc.tabctrl.navigationController  popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
}

しかし、次のタブにジャンプしますが、popToViewController が機能しません。何か提案はありますか?

4

2 に答える 2

3

ビューコントローラーがナビゲーションコントローラーの場合、タブを切り替えると次のコードがルートビューに変更されます

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    if ([self.tabBarController.selectedViewController isKindOfClass:[UINavigationController class]])
    {
        [(UINavigationController*)self.tabBarController.selectedViewController popToRootViewControllerAnimated:YES];


    }

}
于 2013-10-21T11:29:57.560 に答える