我认为这和[myWindow resignKeyWindow]和[self.window makeKeyAndVisible]一样简单,但我猜…并非如此你们知道该怎么做吗?
谢谢:)
发布于 2011-02-27 08:00:37
不要直接调用-resignKeyWindow,当你的UIWindows被移除时,它会被重写以执行一些代码。为了删除旧窗口,您需要创建新的UIWindow实例并将其设置为-makeKeyAndVisible,旧窗口将重新标记其关键状态。在iOS 4中,如果你没有任何对它的引用,它甚至会对你的旧UIWindow进行垃圾回收。在iOS 3.x中这样做会产生灾难性的影响。警告过你。
发布于 2013-01-19 01:05:02
隐藏窗口的正确方法是将hidden属性设置为YES。要从nil应用程序的windows属性中删除它,只需释放窗口(在ARC中,将所有引用设置为nil)。
当然,您可能希望此时有另一个窗口。
发布于 2020-01-30 22:42:52
下面是如何以向后兼容的方式删除iOS 13上的UIWindow。在支持多窗口的iOS 12、iOS 13、iPadOS上进行了测试:
extension UIWindow {
func dismiss() {
isHidden = true
if #available(iOS 13, *) {
windowScene = nil
}
}
}用法:
// Detect key window
let keyWindow = UIApplication.shared.windows.first { $0.isKeyWindow }
// Dismiss key window (if any)
keyWindow?.dismiss()https://stackoverflow.com/questions/4544489
复制相似问题