我正在开发一个iOS应用程序,我在其中流式传输来自youtube的实时视频。退出全屏模式后,状态栏会覆盖所有视图中的导航栏(as seen in this picture)
我已经搜索了此问题,找到了一种解决方案,该解决方案是在退出全屏模式后执行的功能中添加以下代码:
@objc func videoExitFullScreen (_ sender: Any?){
navBar.frame.origin = CGPoint(x: 0, y: 20)
}
此代码成功解决了该问题。但是,我需要将此代码放置在应用程序的每个控制器中。当我尝试将其放置在应用程序委托中时,它不能解决以下问题:
@objc func videoExitFullScreen (_ sender: Any?){
UINavigationBar.appearance().frame.origin = CGPoint(x: 0, y: 20)
}
您有什么建议可以将代码放在一个地方,它将解决问题吗?
答案 0 :(得分:0)
尝试这样
//创建一个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)
}
}
答案 1 :(得分:0)