首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何删除UIWindow?

如何删除UIWindow?
EN

Stack Overflow用户
提问于 2010-12-28 15:47:31
回答 6查看 39.9K关注 0票数 36

我认为这和[myWindow resignKeyWindow][self.window makeKeyAndVisible]一样简单,但我猜…并非如此你们知道该怎么做吗?

谢谢:)

EN

回答 6

Stack Overflow用户

发布于 2013-01-19 01:05:02

隐藏窗口的正确方法是将hidden属性设置为YES。要从nil应用程序的windows属性中删除它,只需释放窗口(在ARC中,将所有引用设置为nil)。

当然,您可能希望此时有另一个窗口。

票数 96
EN

Stack Overflow用户

发布于 2020-01-30 22:42:52

下面是如何以向后兼容的方式删除iOS 13上的UIWindow。在支持多窗口的iOS 12、iOS 13、iPadOS上进行了测试:

代码语言:javascript
复制
extension UIWindow {
    func dismiss() {
        isHidden = true

        if #available(iOS 13, *) {
            windowScene = nil
        }
    }
}

用法:

代码语言:javascript
复制
// Detect key window
let keyWindow = UIApplication.shared.windows.first { $0.isKeyWindow }

// Dismiss key window (if any)
keyWindow?.dismiss()
票数 10
EN

Stack Overflow用户

发布于 2020-11-04 02:29:10

这个扩展在更多的案例中帮助了我:

代码语言:javascript
复制
/// Removes window from windows stack
func remove() {
    rootViewController?.view.removeFromSuperview()
    rootViewController = nil
    isHidden = true
    
    // https://stackoverflow.com/a/59988501/4124265
    if #available(iOS 13.0, *) {
        windowScene = nil
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4544489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档