第一種方法:
UIWindow *window = [UIApplication sharedApplication].keyWindow;
UIViewController *rootViewController = window.rootViewController;
第二種方法:
AppDelegate *appdelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UIViewController *rootViewController1 = appdelegate.window.rootViewController;
建議獲取rootViewController的時候還是采用
第二種方法:
AppDelegate *appdelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UIViewController *rootViewController1 = appdelegate.window.rootViewController;
其實纤泵,和alertView類似的雕薪,UIActionSheet也是這樣的沦疾。
一般人說無所謂晰搀,但是如果在AlertView彈出的時候去獲取RootViewController照弥,并且對你認為獲取正確的RootViewController做相關(guān)的操作投蝉,你會死的很慘虫碉。
建議:即使通過第二種方法獲取到了RootViewController苞俘,在使用之前建議再判斷一下獲取到的類是不是就是自己想要的類型,更保險一些计维。
AppDelegate *appdelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
if ([appdelegate.window.rootViewController isKindOfClass:["想要獲取到的rootVC" class]] == YES) {
// 為所欲為
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者