【问题标题】:NavigationController with sticky view at top顶部带有粘性视图的 NavigationController
【发布时间】:2018-10-11 05:54:10
【问题描述】:

我有一个带有根视图控制器的导航控制器,我需要在根视图控制器的顶部添加一个固定/粘性视图,这样每当我使用 pushViewController 或 popViewController 时,只有它下面的内容可以导航,这可能吗?

看下面的图片,我希望红色区域是固定的/粘性的,我推或弹出时不会导航或移动,只有蓝色区域可以导航

P.S:containerView 在这里不起作用,因为它充当普通视图,并将其子视图控制器的视图添加到其中。

【问题讨论】:

  • 添加一个containerView 代替蓝色视图,并将你改变的viewController 设置到containerView 中
  • 请检查修改后的版本
  • 如果你有胃口,你可以继承UINavigationController——但这很棘手——见stackoverflow.com/questions/6672229/…

标签: ios swift


【解决方案1】:

添加一个容器视图以添加为导航的子视图控制器,并将navigationBar 设置为隐藏。现在,您可以将上述高度为 44 的视图添加为所有视图控制器的粘性视图。 如果您想在导航下的子视图控制器之间与父级进行通信,我建议NSNotification 观察者或委托由所有子 VC 或UINavigationController 的子类确认。 这是一种系统的方式。

其他虚拟方法是向window 添加一个视图,如果您希望它位于任何其他视图的下方或上方,则将其设置为view.layer.zPosition

【讨论】:

  • 不,我不知道你在添加 childVC 时会知道,你专门调用 addChildViewController() 并在单独的地方查看。我们知道控制器总是知道使用self.view 的视图。它的工作原理你需要弄清楚。
【解决方案2】:

您可以使用容器视图并显示/隐藏其他视图

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2012-11-26
    • 2021-11-06
    相关资源
    最近更新 更多