iOS-方向更改时导航栏不显示大标题

iOS-方向更改时导航栏不显示大标题,ios,uinavigationbar,uinavigationitem,Ios,Uinavigationbar,Uinavigationitem,我的导航栏上有大标题,可以正确显示 当我将设备方向更改为横向,再更改为纵向时,它会变得规则,而不是大屏幕 这是一个选项卡栏控制器。当我切换选项卡(切换到下面gif中的日历)时,视图将重新加载并正确显示 在我的选项卡栏控制器中,我添加了这个,但并没有帮助我在导航栏中重新调整LarGetTitle override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoord

我的导航栏上有大标题,可以正确显示

当我将设备方向更改为横向,再更改为纵向时,它会变得规则,而不是大屏幕

这是一个选项卡栏控制器。当我切换选项卡(切换到下面gif中的日历)时,视图将重新加载并正确显示

在我的选项卡栏控制器中,我添加了这个,但并没有帮助我在导航栏中重新调整LarGetTitle

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
}
}
}