作者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/cn.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