国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS獲取當前正在顯示的窗口、視圖控制器、視圖

2019-11-09 13:55:36
字體:
來源:轉載
供稿:網友

1. 獲取當前頂層的窗口

一般最簡單的方法

UIWindow *window = [UIapplication sharedApplication].keyWindow;或者

UIWindow *window = [[UIApplication sharedApplication].windows lastObject];

或者再對windows做一下排序判斷

UIWindow *topWindow = [[[UIApplication sharedApplication].windows sortedArrayUsingComparator:^NSComparisonResult(UIWindow *win1, UIWindow *win2) {        return win1.windowLevel - win2.windowLevel;    }] lastObject];上面不管哪種方法,如果是在只有一個window的情形下倒沒問題,但是當存在多個window,則都不能真正獲取到當前正在顯示的窗口 。

終極方法如下:

UIWindow *topWindow = [[[UIApplication sharedApplication] delegate] window];

2. 獲取最頂層的視圖控制器

不論中間采用了 push->push->PResent還是present->push->present,或是其它交互

(UIViewController *)theTopviewControler{    UIViewController *rootVC = [[UIApplication sharedApplication].delegate window].rootViewController;    UIViewController *parent = rootVC;    while ((parent = rootVC.presentedViewController) != nil ) {    rootVC = parent;    }    while ([rootVC isKindOfClass:[UINavigationController class]]) {    rootVC = [(UINavigationController *)rootVC topViewController];    }    return rootVC;}

3. 獲取最頂層的視圖

拿到視圖控制器,獲取視圖就方便了


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连云港市| 武宁县| 保靖县| 台湾省| 曲麻莱县| 达日县| 象山县| 大关县| 普兰店市| 抚顺县| 五家渠市| 丹凤县| 榆树市| 宝兴县| 正安县| 西充县| 中超| 根河市| 日喀则市| 北宁市| 涿州市| 南投县| 哈尔滨市| 汽车| 南汇区| 历史| 肃北| 文山县| 江津市| 老河口市| 卓尼县| 清远市| 腾冲县| 辽阳县| 新兴县| 留坝县| 庆城县| 当雄县| 扎赉特旗| 当阳市| 托克逊县|