G33*_*z0r 29 iphone cocoa-touch uiwindow ios4 ios
我觉得这很简单[myWindow resignKeyWindow],[self.window makeKeyAndVisible]但我猜不是......你们不知道该怎么办?
谢谢 :)
Nik*_*uhe 81
隐藏窗口的正确方法是将hidden属性设置为YES.要从UIApplication的windows属性中删除它,您只需释放窗口(在ARC中将所有引用设置为nil).
当然,您希望此时有另一个窗口.
bio*_*ffe 15
不要-resignKeyWindow直接调用,当你的UIWindows被删除时,它被覆盖以执行一些代码.为了删除旧窗口,您需要创建UIWindow的新实例并进行创建-makeKeyAndVisible,旧窗口将重新签名其关键状态.在iOS 4中,如果您没有任何对它的引用,它甚至会垃圾收集您的旧UIWindow.在iOS 3.x中执行此操作会产生灾难性后果.警告你.
以下是如何UIWindow以向后兼容的方式在 iOS 13 上删除。在支持多窗口的 iOS 12、iOS 13、iPadOS 上测试:
extension UIWindow {
func dismiss() {
isHidden = true
if #available(iOS 13, *) {
windowScene = nil
}
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
// Detect key window
let keyWindow = UIApplication.shared.windows.first { $0.isKeyWindow }
// Dismiss key window (if any)
keyWindow?.dismiss()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33133 次 |
| 最近记录: |