iOS 回到rootViewController根控制器视图

直接上代码

- (void)backToRootViewController{
    UIViewController* vc = [MainViewController instance].navigationController.visibleViewController;
    if ([vc isEqual:[MainViewController instance]]) return;
    if (vc.presentingViewController) {
        [vc dismissViewControllerAnimated:NO completion:^{
            [self backToRootViewController];
        }];
    }
    else{
        [vc.navigationController popViewControllerAnimated:NO];
        [self backToRootViewController];
    }
}

上面的代码需要一个根控制器的实例对象,原理是迭代弹出栈顶控制器,直到返回根控制器为止,这里不显示动画。如果需要显示动画,需使用CATransaction来控制popViewControllerAnimated动画结束再再次执行调用,不然肯定会出错。个人觉得也没有必要,谁也不想返回到主页面可能会花掉数秒钟。

GOOD LUCK!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。