Search code examples
iosuitabbarcontrolleruisplitviewcontroller

Pop to root SplitViewController in TabBarController - iOS


TableViewController Context: Here's my app:

Tab 1: NavigationController -> ViewController

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

                           -> NavigationController -> Detail : TableViewController  -> TableViewController


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

How do I pop to the root of each tab from a method in the tab 3 (basically a logout button)?


Solution

  • I managed to accomplish what I was trying to do, here's the code for others looking for the answer :

    - (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];
                }
            }
        }
    }
    

    }