我是以编程方式创建UINavigationController
:
navigationController = UINavigationController(rootViewController: modeSelectVC!)
navigationController?.delegate = self
window.rootViewController = navigationController
window.makeKeyAndVisible()
然后我自定义我的UINavigationBar
外观:
navigationBarAppereance.barTintColor = UIColor.ColorPalette.bostonUniversityRed
navigationBarAppereance.tintColor = UIColor.ColorPalette.eerieBlack
navigationBarAppereance.barStyle = .black
navigationBarAppereance.isTranslucent = true
navigationBarAppereance.prefersLargeTitles = true
navigationBarAppereance.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.ColorPalette.babyPowder]
配置的UINavigationBar
隐藏在状态栏中提供的rootViewController
中,但当rootViewController
推送另一个视图控制器时,状态栏和导航栏都会变得可见:
结果是我编程的结果,但正如您在上面所看到的那样,back
按钮未对齐。如果我放弃了更喜欢的大标题,那么后退按钮就像往常一样正确对齐,但为什么在使用大标题时它会不对齐。
答案 0 :(得分:2)
这个here有一个很好的答案:
您应该将导航栏的顶部固定到状态栏的底部,并使用UIBarPositioningDelegate机制将其位置设置为.topAttached,这将使其在状态栏下正确拉伸。
答案 1 :(得分:2)
我有点解决了这个问题。一旦我在初始视图控制器上启用状态栏,之后,无论出现什么,都会正确显示导航栏和状态栏。
我仍然不知道导致问题的原因(如果这是我的实施错误或文档很差),但处理UINavigationBar可能会很棘手!