使用tabBarController.selectedIndex 后出现页面没有返回到rootViewController

今天发现使用了self.navigationController.tabBarController.selectedIndex = 0;

出现一个问题 如果有四个tabbaritem 首页,  活动, 朋友圈 , 我的   当我在我的tabbar 里面的二级控制调用self.navigationController.tabBarController.selectedIndex = 0; 这个方法回到首页 然后再点击我的会出现 还在二级界面 没有回到我的页面 由于需求需要回到我的页面  经过苦心思索累死累活 一开始用了一个笨方法 直接每次如果有这样奇葩跳转时候进行重新初始化tabbarController 虽说解决问题了 但是这绝对不是正确的解决办法 于是乎又产生另一种方法 就是在调用完tabBarController.selectedIndex = 0; 这个方法后 获取tabBarController的viewControllers  然后遍历这个 viewControllers 判断是否有UINavigationController  如果存在 那么调用 popToRootViewController   贴上代码:

[self currentViewController].navigationController.tabBarController.selectedIndex = 0;

            NSArray *AllControllers = [self currentViewController].navigationController.tabBarController.viewControllers;

            for(UIViewController *viewController in AllControllers)

            {

                if([viewController isKindOfClass:[UINavigationController class]])

                {

                    UINavigationController *nav= (UINavigationController *)viewController;

                    [nav popToRootViewControllerAnimated:YES];

                }

            }

虽然很简单但是 我却想的要死要活的惭愧呀!!!

你可能感兴趣的:(使用tabBarController.selectedIndex 后出现页面没有返回到rootViewController)