ios - 自定义 UIWindow 及其根 UINavigationController 未被删除

标签 ios swift memory-management uiwindow

这就是我创建和发布自定义 UIWindow 的方式:

class mainViewController: UIViewController {

    var customWindow: UIWindow?

    override func viewDidLoad() {
        super.viewDidLoad()

        self.customWindow = UIWindow()
        self.customWindow!.rootViewController = UINavigationController(rootViewController: UITableViewController(style: .plain))
        self.customWindow!.isHidden = false
    }

    deinit {
        self.customWindow?.rootViewController = nil
        self.customWindow?.isHidden = true
        self.customWindow = nil
    }
}

deinit之后,customWindow仍然存在于调试 View 层次结构中,我缺少什么?

最佳答案

以下是工作代码,完全摆脱了 UIWindow 及其兄弟层次结构:

if let rootVC = self.customWindow?.rootViewController {
    rootVC.dismiss(animated: false, completion: nil)
    self.customWindow = nil
}

关于ios - 自定义 UIWindow 及其根 UINavigationController 未被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42040177/

相关文章:

ios - 如何通过Arkit人脸跟踪获取3D位置数据?

ios - 无法在 XMPP 中获取消息传递回执

ios - 为什么我在不同的应用程序中得到不同的Locale.current?

ios - 阻止 Speechkit 使 iOS 9 设备崩溃

swift - 选择新的 UITextField 时更新 UIPickerView 行

C++共享内存泄漏,如何清除共享内存?

iphone - 将图像添加到自定义单元格 subview

swift - swift 中这两个枚举声明有什么区别?

memory-management - 什么类型的输入会减慢动态内存分配器 malloc() 和 free() 的执行时间?

iphone - Object with NSmutableArray of objects with nsmutablearray of objects-如何释放