作者slacash (cash)
看板MacDev
標題[問題] ios14取當前view問題
時間Thu Nov 26 22:34:30 2020
小弟公司目前有寫一個庫讓別人用,
裡面有一個功能是彈出一個viewcontroller的彈窗,原本在ios13之前,
只要用 [UIApplication sharedApplication].keyWindow.rootViewController
就可以取得當前viewcontrller,然後再把我的彈窗顯示在上面。
但在ios 13的時候,已無法使用,改用以下方式:
-(UIViewController *)getKeyWindow{
NSArray *windows = [UIApplication sharedApplication].windows;
for(UIWindow *window in [windows reverseObjectEnumerator]) {
if ([window isKindOfClass:[UIWindow class]] &&
CGRectEqualToRect(window.bounds, [UIScreen mainScreen].bounds)){
return window.rootViewController;
}
}
return [UIApplication sharedApplication].keyWindow.rootViewController;
}
現在ios14開始又取不到當前viewcontroller,想請問有人是否遇到這樣問題 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.68.55 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MacDev/M.1606401272.A.DC5.html
1F:→ yuanruo: 如果你rootviewcontroller沒變的話 1.160.165.218 11/29 00:21
2F:→ yuanruo: 何不直接取application delegate.window 1.160.165.218 11/29 00:23
3F:→ yuanruo: 我是覺得這樣寫不好~但誰也不知你對 1.160.165.218 11/29 00:24
4F:→ yuanruo: keywindow做了啥 或是你app有幾個window 1.160.165.218 11/29 00:24
5F:→ slacash: 請問大大如何確認rootviewcontroller改223.137.160.156 11/29 02:44
6F:→ slacash: 變,改變了該如何做?223.137.160.156 11/29 02:44
7F:→ yuanruo: 通常都是變KeyWindow, 查查有沒有呼叫到 36.226.10.120 11/29 15:08
8F:推 yuanruo: makeKeyWindow 這個函數 或是登出時是 36.226.10.120 11/29 15:10
9F:→ yuanruo: 切換RootViewController方式 36.226.10.120 11/29 15:11
10F:→ yuanruo: 那可以找makeKeyAndVisible 36.226.10.120 11/29 15:11
11F:→ yuanruo: 不過你應該先在你for迴圈裡印每個window 36.226.10.120 11/29 15:12
12F:→ yuanruo: 再去排查比較快 36.226.10.120 11/29 15:12
13F:→ yuanruo: 或是你呼叫時之前present 一個VC 36.226.10.120 11/29 15:14
14F:→ yuanruo: 那你整個window結構也會變 36.226.10.120 11/29 15:14
15F:→ slacash: 大大再請問一下 如果只有一個window 但223.137.160.156 11/29 22:08
16F:→ slacash: 有多個subview需要抓最上層的subview嗎223.137.160.156 11/29 22:08
17F:→ yuanruo: 不懂抓subView要做什麼 有subviews代表 1.162.196.16 11/29 23:54
18F:→ yuanruo: 你曾addSubView很多到window上,意義是? 1.162.196.16 11/29 23:55
19F:→ yuanruo: 如果裝置是iPad建議還是不要用keywindow 1.162.196.16 11/29 23:59
20F:→ yuanruo: 因為他在iOS13 被棄用 但iPhone則沒差 1.162.196.16 11/30 00:00