如何使用自定义标题或 UINavigationBar 子类化 UINavigationController?

Gol*_*Joe 5 uiviewcontroller uiview uinavigationcontroller ios swift

我想继承 UINavigationController 以包含几种类型的标题,这些标题可以从一种转换到另一种。我正在考虑设计中的一些事情:

  1. 我应该如何管理子控制器视图的大小?将它们限制在每种标题的底部似乎很笨重,并且在转换过程中难以管理。
  2. 我尝试在 loadView() 中将 UIView 子类分配给 UINavigationController 的视图,但这样做会导致子控制器视图不显示(而是显示为黑色)。为什么会发生这种意外行为?
  3. 如何支持 UINavigationController 的“从左到右拖动”过渡?
  4. 有没有办法通过继承 UINavigationBar 来实现这一点?如果没有,我的自定义视图如何支持 UINavigationController 的过渡动画?
  5. 将 UIViewController 子类化并编写我自己的基本 UINavigationController 行为实现会有什么好处吗?

标题 1

标题 2

pes*_*sch 0

我知道使用这些方法是不够的:

func setBackgroundImage(UIImage?, for: UIBarMetrics)并将任意视图设置为 ,titleView以在标题区域中插入视图。

也不将导航栏设置为透明,并且仅在子视图上显示barbuttons和显示。titleview

检查UINavigationBarUINavigationItem文档