【发布时间】:2017-10-23 15:25:29
【问题描述】:
我想在我的应用的第一个 VC 之上以及它呈现的第二个 VC 之上显示一些 UI 元素,例如搜索栏。
我的解决方案是创建一个 ContainerViewController,它调用 addChildViewController(firstViewController) 和 view.addSubview(firstViewController.view)。然后是view.addSubview(searchBarView),每个 UI 元素都类似。
稍后,FirstViewController 可能会调用present(secondViewController),理想情况下,它会向上滑动到屏幕上,而我的搜索栏和其他元素仍会出现在两个视图控制器的顶部。
相反,secondViewController 显示在 ContainerViewController 之上,从而隐藏了搜索栏。
我还希望,当用户点击搜索栏时,ContainerViewController 会在所有内容之上显示 SearchVC。为此,它很简单 - containerVC.present(searchVC)。
我怎样才能让这个层次结构正常工作?
【问题讨论】:
-
使用 containerviewcontroller 看起来不错。只是当你想展示第二个控制器时,你可以使用自定义视图动画或基于导航的转换来转换 secondVC,就像你使用
present(secondViewController)一样。这样最顶部的 UI 元素将不会隐藏。
标签: ios swift uinavigationcontroller uikit uivewcontroller