[問題] ios14取當前view問題

看板MacDev作者 (cash)時間3年前 (2020/11/26 22:34), 編輯推噓1(1019)
留言20則, 2人參與, 3年前最新討論串1/1
小弟公司目前有寫一個庫讓別人用, 裡面有一個功能是彈出一個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://www.ptt.cc/bbs/MacDev/M.1606401272.A.DC5.html

11/29 00:21, 3年前 , 1F
如果你rootviewcontroller沒變的話
11/29 00:21, 1F

11/29 00:23, 3年前 , 2F
何不直接取application delegate.window
11/29 00:23, 2F

11/29 00:24, 3年前 , 3F
我是覺得這樣寫不好~但誰也不知你對
11/29 00:24, 3F

11/29 00:24, 3年前 , 4F
keywindow做了啥 或是你app有幾個window
11/29 00:24, 4F

11/29 02:44, 3年前 , 5F
請問大大如何確認rootviewcontroller改
11/29 02:44, 5F

11/29 02:44, 3年前 , 6F
變,改變了該如何做?
11/29 02:44, 6F

11/29 15:08, 3年前 , 7F
通常都是變KeyWindow, 查查有沒有呼叫到
11/29 15:08, 7F

11/29 15:10, 3年前 , 8F
makeKeyWindow 這個函數 或是登出時是
11/29 15:10, 8F

11/29 15:11, 3年前 , 9F
切換RootViewController方式
11/29 15:11, 9F

11/29 15:11, 3年前 , 10F
那可以找makeKeyAndVisible
11/29 15:11, 10F

11/29 15:12, 3年前 , 11F
不過你應該先在你for迴圈裡印每個window
11/29 15:12, 11F

11/29 15:12, 3年前 , 12F
再去排查比較快
11/29 15:12, 12F

11/29 15:14, 3年前 , 13F
或是你呼叫時之前present 一個VC
11/29 15:14, 13F

11/29 15:14, 3年前 , 14F
那你整個window結構也會變
11/29 15:14, 14F

11/29 22:08, 3年前 , 15F
大大再請問一下 如果只有一個window 但
11/29 22:08, 15F

11/29 22:08, 3年前 , 16F
有多個subview需要抓最上層的subview嗎
11/29 22:08, 16F

11/29 23:54, 3年前 , 17F
不懂抓subView要做什麼 有subviews代表
11/29 23:54, 17F

11/29 23:55, 3年前 , 18F
你曾addSubView很多到window上,意義是?
11/29 23:55, 18F

11/29 23:59, 3年前 , 19F
如果裝置是iPad建議還是不要用keywindow
11/29 23:59, 19F

11/30 00:00, 3年前 , 20F
因為他在iOS13 被棄用 但iPhone則沒差
11/30 00:00, 20F
文章代碼(AID): #1Vlxput5 (MacDev)
文章代碼(AID): #1Vlxput5 (MacDev)