像UIactionsheet,UIalertviewcontroller都是在application中添加一个window后,然后在window中添加视图实现的,所以我想将一些弹出的窗口以类似的方式实现。
但是有个问题,原本的vc如果是将status bar隐藏的话,新添加的window又会将它展示出来,这时可以利用window的rootviewcontroller属性,给它付一个自定义的vc,在自定的vc中把状态栏隐藏就可以。
var backWindow: UIWindow! //window必须被持有,不能是局部变量
func showWindow(){
class VC: UIViewController{
override var prefersStatusBarHidden: Bool{
return true
}
}
backWindow = UIWindow(frame: UIScreen.main.bounds)
backWindow = UIColor(red: 10, green: 10, blue: 10, alpha: 0.6)
backWindow = UIWindowLevelAlert + 1
backwindow.rootViewController = VC()
/// 直接在window上添加视图
backwindow.makeKeyAndVisible()
}