實際開發(fā)中,時長需要獲取屏幕最上層的ViewController,以下代碼是對實現(xiàn)此需求的簡單代碼封裝。
PS:以下代碼被封裝為UIApplication類的分類
<pre>
`
//獲取rootViewController
- (UIViewController )rootViewController{
UIWindow window = [UIApplication sharedApplication].keyWindow;
return window.rootViewController;
}
`
</pre>
<pre>
`
//獲取Window當前顯示的ViewController
-
(UIViewController)currentViewController{
UIViewController vc = [UIApplication rootViewController];while (1) {
if ([vc isKindOfClass:[UITabBarController class]]) {
vc = ((UITabBarController*)vc).selectedViewController;
}if ([vc isKindOfClass:[UINavigationController class]]) { vc = ((UINavigationController*)vc).visibleViewController; } if (vc.presentedViewController) { vc = vc.presentedViewController; }else{ break; }}
return vc;
}
`
</pre>