UISearchViewController 在演示期间隐藏标签栏
UISearchViewController hides tabbar during presentation
我使用 UISearchViewController
来控制我的应用程序的搜索内容。我看到有一个名为 hidesNavigationBarDuringPresentation
的 属性 用于处理导航栏的可见性,但我想做的是在演示期间隐藏标签栏,我找不到任何属性来执行此操作。
有什么变通方法吗?
你是对的,没有 属性 用于显式显示和隐藏标签栏,但是你自己实现很容易:
- 使您的视图控制器(不是
UISearchController
)实现 UISearchControllerDelegate
。
- 将您的视图控制器分配给搜索控制器的
delegate
属性。
- 实施
willPresentSearchController()
(或 didPresentSearchController()
)和 presentSearchController()
以隐藏您的标签栏。 (前者在自动显示搜索栏时调用;后者在手动显示时调用。)
- 执行
willDismissSearchController()
(或didDismissSearchController
)再次显示。
请注意,如果您的实现只是简单地切换搜索栏的 hidden
属性,则搜索栏不会以动画方式进出;你必须自己制作动画。
您的实施检查 hidesNavigationBarDuringPresentation
的值可能是个好主意,这样您的选项卡栏仅在导航栏打开时显示和隐藏。
我使用 UISearchViewController
来控制我的应用程序的搜索内容。我看到有一个名为 hidesNavigationBarDuringPresentation
的 属性 用于处理导航栏的可见性,但我想做的是在演示期间隐藏标签栏,我找不到任何属性来执行此操作。
有什么变通方法吗?
你是对的,没有 属性 用于显式显示和隐藏标签栏,但是你自己实现很容易:
- 使您的视图控制器(不是
UISearchController
)实现UISearchControllerDelegate
。 - 将您的视图控制器分配给搜索控制器的
delegate
属性。 - 实施
willPresentSearchController()
(或didPresentSearchController()
)和presentSearchController()
以隐藏您的标签栏。 (前者在自动显示搜索栏时调用;后者在手动显示时调用。) - 执行
willDismissSearchController()
(或didDismissSearchController
)再次显示。
请注意,如果您的实现只是简单地切换搜索栏的 hidden
属性,则搜索栏不会以动画方式进出;你必须自己制作动画。
您的实施检查 hidesNavigationBarDuringPresentation
的值可能是个好主意,这样您的选项卡栏仅在导航栏打开时显示和隐藏。