[UIApplication sharedApplication].keyWindow.rootViewController
Posted 不停奔跑的蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[UIApplication sharedApplication].keyWindow.rootViewController相关的知识,希望对你有一定的参考价值。
一般来说 [UIApplication sharedApplication].keyWindow.rootViewController 会在 appDelegate 中初始化,并且整个应用运行过程中都不会变。
所以在很多地方需要用 presentModelViewController 方法时,用这个 rootViewController 是很方便的,因为它相当于一个全局变量,无需再申请、释放。
但是本人在使用过程中发现有 rootViewController 被改为 nil 的情况。
分析后发现,当 UIAlertView 调用 show 方法后,rootViewController 会被改为 nil,当它 dismiss 后又改回去。而我需要用户在点击 alertview 上的按钮后再做
presentModelViewController 的操作。
解决方法:
不要使用 alertview delegate 中的
- (void)alertView:clickedButtonAtIndex:
方法
而要用:
- (void)alertView:diddismissWithButtonAtIndex:
方法!
以上是关于[UIApplication sharedApplication].keyWindow.rootViewController的主要内容,如果未能解决你的问题,请参考以下文章
WatchKit 中 UIApplication.sharedApplication().delegate 的等价物是啥?
XCTest:[UIApplication sharedApplication] 返回 nil
iOS UIApplication sharedapplication用法
[UIApplication sharedApplication].keyWindow.rootViewController