记一下:iOS 添加UIwindow 后关于status bar的问题

像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()
}

你可能感兴趣的:(记一下:iOS 添加UIwindow 后关于status bar的问题)