【问题标题】:UISearchController ResultsController appearing over navigation barUISearchController ResultsController 出现在导航栏上
【发布时间】:2017-06-17 19:26:40
【问题描述】:

我有一个 UISearchController,它有自己的自定义结果控制器,而不是在即时视图中过滤内容。

UISearchBar 正确显示在导航栏中,但是当我开始在搜索框中输入字符时,我的自定义控制器出现并填满了整个屏幕,覆盖了导航栏和我正在输入查询的窗口进入。

这曾经可以工作,但我最近更改了我的故事板,将 UINavigationController 作为入口点,引导到 UITabBarController,然后有它的选项卡式控制器。

UITabBarController 现在拥有搜索的所有逻辑,因此它可以通过我实现的协议将搜索结果上的操作路由到相应的选项卡。

下面是我的故事板,请注意,自定义搜索结果控制器是位于 UITabBarController 下方的项目,右上角未附加的项目通过库使用,并在内部附加到顶部选项卡的控制器.

我开始怀疑这个特定配置是否有效?我可以在UITabBarController 前面加上UINavigationController 吗?

我想在一个位置(UITabBarController)有一个持久的搜索栏,而不是在每个选项卡前面放置一个 UINavigationController?

如果这应该可行,是否有任何想法为什么自定义搜索结果控制器现在覆盖整个屏幕,而不是在导航栏下方?

【问题讨论】:

    标签: ios uiviewcontroller swift3 uistoryboard uisearchcontroller


    【解决方案1】:

    原来问题是我需要打电话

    definesPresentationContext = true
    

    在已经显示的视图控制器中(标签 1)

    当我将搜索代码移到 UITabBarController 时,我也将其移动了。

    【讨论】:

    • 整天都在找这个
    【解决方案2】:

    我相信你只需要拥有

    edgesForExtendedLayout = []
    

    在您的 SearchResultsControllers 中 ViewDidLoad()

    现在应该在 searchController searchBar 下。

    【讨论】:

      猜你喜欢
      • 2016-09-23
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多