iOS 11 prefersLargeTitles 奇怪的过渡

iOS 11 prefersLargeTitles Weird Transition

所以我对 iOS 11 中的新大标题有一个奇怪的问题。我在这里没有试图糟糕和令人困惑地解释这个问题,而是一个 10 秒的屏幕录像来记录正在发生的事情:

Screen recording of issue on YouTube

如您所见,在具有

的视图控制器之间转换时会出现一个奇怪的黑条
navigationItem.largeTitleDisplayMode = .never

还有一个设置为 .always

提前致谢!

在转换之前设置:

self.navigationController?.view.backgroundColor = .white

正如 Pranav 所说,这里的问题是导航控制器视图的背景颜色,但是,从子视图控制器更改它并不是完美的方法。

相反,更好的方法是继承 UINavigationController 并在 viewDidLoad() 中设置

override func viewDidLoad()
{
  super.viewDidLoad()
  view.backgroundColor = .white
}

然后,只需使用您的自定义子类而不是标准 UINavigationController。这样,您只需要在一个地方使用此代码。