Ios 推送后导航栏重叠状态栏

Ios 推送后导航栏重叠状态栏,ios,uinavigationbar,statusbar,overlap,Ios,Uinavigationbar,Statusbar,Overlap,结构:NavigationController->VC1->VC2 VC1需要以编程方式显示或隐藏状态栏,它由statusBarHidden var statusBarHidden = false { didSet { setNeedsStatusBarAppearanceUpdate() } } override var prefersStatusBarHidden : Bool { return

结构:NavigationController->VC1->VC2

VC1需要以编程方式显示或隐藏状态栏,它由
statusBarHidden

var statusBarHidden = false {
        didSet {
            setNeedsStatusBarAppearanceUpdate()
        }
    }
    
    override var prefersStatusBarHidden : Bool {
        return false
    }
VC2还添加了以下代码:

    override var prefersStatusBarHidden : Bool {
        return false
    }
如果
statusBarHidden
self.navigationController?.pushViewController(VC2,动画:true)
之前未更改,则状态栏将不会与VC2中的导航栏重叠

但是一旦
statusBarHidden
设置为
true
,即使设置为
false
,状态栏也会与VC2中的导航栏重叠,顺便说一句,这与序列图像板序列相同。但它在带有notch的iPhone上运行良好,比如iphonex、iphone11

我试图设置一个固定的高度,但实际高度似乎没有受到影响,导航栏总是保持一定的高度超过64

navBar.frame = CGRect(x:0, y:20, width:self.view.frame.size.width, height:64)