iOS-方向更改时导航栏不显示大标题
我的导航栏上有大标题,可以正确显示 当我将设备方向更改为横向,再更改为纵向时,它会变得规则,而不是大屏幕 这是一个选项卡栏控制器。当我切换选项卡(切换到下面gif中的日历)时,视图将重新加载并正确显示 在我的选项卡栏控制器中,我添加了这个,但并没有帮助我在导航栏中重新调整LarGetTitleiOS-方向更改时导航栏不显示大标题,ios,uinavigationbar,uinavigationitem,Ios,Uinavigationbar,Uinavigationitem,我的导航栏上有大标题,可以正确显示 当我将设备方向更改为横向,再更改为纵向时,它会变得规则,而不是大屏幕 这是一个选项卡栏控制器。当我切换选项卡(切换到下面gif中的日历)时,视图将重新加载并正确显示 在我的选项卡栏控制器中,我添加了这个,但并没有帮助我在导航栏中重新调整LarGetTitle override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoord
override func viewWillTransition(to size: CGSize, with coordinator:
UIViewControllerTransitionCoordinator) {
if UIDevice.current.orientation.isLandscape {
//do something
} else {
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationItem.largeTitleDisplayMode = .always
}
}
如果我在tabviewcontroller中添加上述代码,它甚至不会调用。它从我的tabbar控制器调用,但不会将标题更新为大标题
我在这里被打动了。请让我知道如何解决这个问题
谢谢
更改设备方向时,您可以将导航栏高度重置为默认高度(为了简单起见,我在这里重置了整个导航栏框架):
类ViewController:UIViewController{
惰性变量navigationControllerLargeTitleFrame:CGRect={
让navigationController=UINavigationController()
navigationController.navigationBar.prefersLargeTitles=true
返回navigationController.navigationBar.frame
}()
重写func viewDidLoad(){
super.viewDidLoad()
NotificationCenter.default.addObserver(self,selector:#selector(OrientationIDChangeNotification),名称:UIDevice.OrientationIDChangeNotification,对象:nil)
}
@objc func定向IDChangeNotification(uNotification:NSNotification){
如果UIDevice.current.orientation==.portrait{
navigationController?.navigationBar.frame=navigationControllerLargeTitleFrame
}
}
}