ios - 状态栏隐藏导航栏

标签 ios swift uinavigationbar

我正在开发一个 iOS 应用程序,我可以在其中流式传输来自 youtube 的实时视频。退出全屏模式后,状态栏会覆盖所有 View 中的导航栏 ( as seen in this picture )

我搜索了这个问题,找到了一个解决方案,在退出全屏模式后执行的函数中添加以下代码:

   @objc func videoExitFullScreen (_ sender: Any?){
         navBar.frame.origin = CGPoint(x: 0, y: 20)
   }

这段代码成功解决了问题。但是,我需要将此代码放置在应用程序的每个 Controller 中。当我尝试将其放置在应用程序委托(delegate)中时,如下所示,它没有解决问题:

   @objc func videoExitFullScreen (_ sender: Any?){
         UINavigationBar.appearance().frame.origin = CGPoint(x: 0, y: 20)
   }

您有什么建议我可以将代码放在一个地方并解决问题吗?

最佳答案

尝试这样

//创建一个 UIViewController 类型的新类

class BaseViewController : UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.videoExitFullScreen()
    }

    func videoExitFullScreen (){
        navBar.frame.origin = CGPoint(x: 0, y: 20)
    }
}

//将 UIViewController 替换为 BaseViewController

class ViewController: BaseViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
    }
}

关于ios - 状态栏隐藏导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57027664/

相关文章:

objective-c - 用于流体/水模拟的 iPhone 物理引擎?

ios - 在Titanium中,暂停事件和ios中的registerBackgroundService有什么区别?

ios - 使用 Swift 在 iOS 中进行低级图形处理

ios - 启用后,UIBarButtonItem标题颜色将显示为浅灰色

ios - 特定于每个 View Controller 的导航栏,如 Apple Music

ios - 如何在 View Controller 之间同步索引

iOS 应用程序在启动时崩溃

ios - 无法在 iOS 中通过 cocoa pod 安装 Realm

ios - 如何在 iOS 9 上淡入/淡出导航栏?

ios - 调整 UITextView 的大小 - 高度不调整