美文网首页
iOS 中rootViewcontroller获取

iOS 中rootViewcontroller获取

作者: Devbrave | 来源:发表于2018-03-07 10:43 被阅读532次

    获取工程中window的rootViewcontroller的方法:

    • 方法一
    UIWindow *window = [UIApplication shareApplication].keyWindow;
    UIViewController *rootViewController = window.rootViewController;
    

    *方法二

    AppDelegate *appDelegate = (AppDelegate*)[UIApplication shareApplication].delegate;
    UIViewController *rootViewController = appDelegate.window.rootViewController;
    

    两种方法获取到的在一般的时候是没有区别的,但是在有时候就不一样了。

    [UIApplication sharedApplication].keyWindow
    

    其中的keyWindow:我理解的是在windows数组中最近调用makeKeyAndVisible方法的属性。
    这个我们可以参考UIAlertView来理解:
    alertView的出现是生成了一个新的window,展示在界面上。这时我们获取到的keyWindow就是UIAlertControllerShimPresenterWindow这时我们通过keyWindow获取到的rootViewcontroller就不对了。所以我建议还是通过第二种方法来获取rootViewcontroller

    相关文章

      网友评论

          本文标题:iOS 中rootViewcontroller获取

          本文链接:https://www.haomeiwen.com/subject/ceqxhxtx.html