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!

时间: 2024-10-07 21:21:13

iOS 回到rootViewController根控制器视图的相关文章

iOS开发:iOS中的多控制器管理

iOS中的控制器有三种创建方式: 1.通过storyboard创建 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Apply" bundle:nil]; SchemeViewController *schemeVC = [storyboard instantiateViewControllerWithIdentifier:@"SchemeViewController"]; 2.指定xib文

IOS笔记046-UIApplication/导航控制器

阅读目录 UIApplication info.plist文件 pch文件 AppDelegate main.m文件 UINavigation - 导航控制器 storyboard实现控制器之间的跳转 回到顶部 UIApplication 每一个应用都有自己的UIApplication对象,而且是单例的 通过[UIApplication sharedApplication]可以获得这个单例对象 一个iOS程序启动后创建的第一个对象就是UIApplication对象 单例对象的获取 UIAppli

iOS应用程序之控制器管理

控制器以及view的多种创建方式 UINavigationController的简单使用:添加\移除子控制器 UINavigationBar内容的设置 控制器的生命周期方法 一.控制器以及view的多种创建方式 1??控制器的创建方式 -直接创建 ViewController *test = [[ViewController alloc] init]; -指定xib文件来创建 ViewController *test = [[ViewController alloc] initWithNibNa

iOS利用Runtime自定义控制器POP手势动画

前言 苹果在iOS 7以后给导航控制器增加了一个Pop的手势,只要手指在屏幕边缘滑动,当前的控制器的视图就会跟随你的手指移动,当用户松手后,系统会判断手指拖动出来的大小来决定是否要执行控制器的Pop操作. nav_pop_origin.gif 这个操作的想法非常好,但是系统给我们规定的范围必须是屏幕左侧边缘才可以触发,这样实际使用过程中对于有些产品会产生不便,于是有些app就采取整个屏幕都响应这个手势并且pop动画还是用系统原生的,这样操作起来确实方便好多. nav_pop_custom.gif

iOS开发UI篇—控制器的View的创建

iOS开发UI篇—控制器的View的创建 一.6种创建控制器View的方式 1 #import "NJAppDelegate.h" 2 #import "NJViewController.h" 3 /* 4 1.没有同名xib情况下 5 2.通过 storyboard 创建 6 3.有指定xib情况下创建 7 4.有同名xib情况 8 5.有同名去掉controll的情况 9 6.loadveiw 10 */ 11 @implementation NJAppDele

iOS开发中标签控制器的使用——UITabBarController

正文 iOS开发中标签控制器的使用——UITabBarController 一.引言 与导航控制器相类似,标签控制器也是用于管理视图控制器的一个UI控件,在其内部封装了一个标签栏,与导航不同的是,导航的管理方式是纵向的,采用push与pop切换控制器,标签的管理是横向的,通过标签的切换来改变控制器,一般我们习惯将tabBar作为应用程序的根视图控制器,在其中添加导航,导航中在对ViewController进行管理. 二.创建一个标签控制器 通过如下的步骤,我们可以很简便的创建一个TabBarCo

iOS开发UI篇—控制器的创建

iOS开发UI篇—控制器的创建 说明:控制器有三种创建方式,下面一一进行说明. 一.第一种创建方式(使用代码直接创建) 1.创建一个空的IOS项目. 2.为项目添加一个控制器类. 3.直接在代理方法中创建一个控制器. 1 #import "YYAppDelegate.h" 2 #import "YYViewController.h" 3 4 @implementation YYAppDelegate 5 6 - (BOOL)application:(UIApplic

如何找到根控制起找到根控制器及获得文件夹路径

// 全局队列 异步下载图片 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { dispatch_async(dispatch_get_global_queue(0, 0), ^{ NSLog(@"%@", [NSThread currentThread]); // 耗时操作: 放在全局队列,异步执行 // 1. url, 确定一个网络上的资源路径 NSURL *url = [NSURL URLWith

iOS中的多控制器管理(二)-UITabBarController-

UITabBarController UITabBarController简介 跟UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是QQ.微信等应用 UITabBarController的简单使用 UITabBarController的使用步骤 初始化UITabBarController 设置UIWindow的rootViewController为UITabBarController 根据具体情