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

首頁 > 系統 > iOS > 正文

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

2019-11-09 14:44:20
字體:
來源:轉載
供稿:網友

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. 獲取最頂層的視圖

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长武县| 长丰县| 晋江市| 潮州市| 石狮市| 湖南省| 万荣县| 兴国县| 延长县| 迁西县| 静安区| 阿巴嘎旗| 靖边县| 宁夏| 兴隆县| 涟水县| 桓台县| 九台市| 台南县| 凯里市| 讷河市| 清远市| 伊金霍洛旗| 东兴市| 图们市| 英山县| 苍梧县| 宜州市| 昭通市| 黔南| 南宫市| 武山县| 安康市| 天祝| 寿阳县| 临武县| 合作市| 新干县| 惠来县| 莲花县| 乐清市|