记一下: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()
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容