通常用到的是keywindow 外, 或者将新window添加到keywindow中, 这里展示的是另外一种新的创建window的方式, 不废话, 直接上代码
import UIKit
class testViewController: UIViewController {
private var win: UIWindow!
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .yellow
let btn = UIButton(frame: CGRect(x: 0, y: 300, width: 40, height: 40))
view.addSubview(btn)
btn.backgroundColor = .red
btn.addTarget(self, action: #selector(test), for: .touchUpInside)
let blueView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
blueView.backgroundColor = .blue
win = UIWindow(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
win.windowLevel = UIWindow.Level.alert + 1 //windowLever越大展示越往前
win.isHidden = false
win.backgroundColor = .black
win.addSubview(blueView)
}
@objc func test() {
win.isHidden = true
win = nil //必须写, 只有这个方法才能将wind从UIAppliction的 windows视图移出, 否则即使页面消失掉前去查看, 打印windows的counts发现window也是在的
self.dismiss(animated: true, completion: nil)
}
deinit {
if (win == nil) {
print("window消失了")
} else {
print(win)
}
}
}