1

TableViewController コンテキスト: これが私のアプリです:

Tab 1: NavigationController -> ViewController

Tab 2: SplitViewController -> NavigationController -> Master : TableViewController  ->TableViewController

                           -> NavigationController -> Detail : TableViewController  -> TableViewController


Tab 3: NavigationController -> ViewController (I'm Here)

タブ 3 のメソッド (基本的にはログアウト ボタン) から各タブのルートにポップするにはどうすればよいですか?

4

3 に答える 3

1

私がやろうとしていたことをなんとか達成しました。答えを探している他の人のためのコードは次のとおりです。

- (void) logout{
for(UIViewController *viewController in tabBarController.viewControllers)
{
    if([viewController isKindOfClass:[UINavigationController class]]){
        [(UINavigationController*)viewController popToRootViewControllerAnimated:NO];
    }
    else if([viewController isKindOfClass:[UISplitViewController class]]){

        UISplitViewController *splitView = (UISplitViewController *)viewController;
        for (UIViewController *navControllerInSplit in splitView.viewControllers) {
            if([navControllerInSplit isKindOfClass:[UINavigationController class]]){
                  [(UINavigationController*)navControllerInSplit popToRootViewControllerAnimated:NO];
            }
        }
    }
}

}

于 2013-07-03T13:47:47.297 に答える
0

次の pop のコードを rootview の where に追加しUINavigationControllerますUITabbarController

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


    }

}

参考:iOS版View Controller Catalog

分割ビュー コントローラーは、作成するすべてのインターフェイスのルートである必要があります。

つまり、常にアプリケーションのウィンドウのルート ビューUISplitViewControllerとしてオブジェクトからビューをインストールする必要があります。

分割ビュー インターフェイスのペインには、インターフェイスを実装するために必要なナビゲーション コントローラー、タブ バー コントローラー、またはその他の種類のビュー コントローラーを含めることができます。

分割ビュー コントローラーはモーダルに表示できません。

したがって、あなたが試みていることは正しくなく、実際、あなたのアプリは Apple によって拒否される可能性があります。

于 2013-07-03T11:02:42.987 に答える