国产探花免费观看_亚洲丰满少妇自慰呻吟_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. 獲取最頂層的視圖

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潮安县| 海阳市| 灵山县| 太谷县| 融水| 来安县| 都兰县| 二连浩特市| 松溪县| 信宜市| 邢台县| 山西省| 桦南县| 鸡东县| 宣化县| 木里| 临漳县| 德州市| 保德县| 遂溪县| 罗城| 铁力市| 临澧县| 晋城| 鄂尔多斯市| 阿巴嘎旗| 临朐县| 清水河县| 海伦市| 丰宁| 竹北市| 甘谷县| 鹿泉市| 雅安市| 陇南市| 安阳县| 海原县| 上栗县| 英吉沙县| 随州市| 田东县|