执行 push segue 后,当给搜索栏焦点时,导航栏隐藏

Posted

技术标签:

【中文标题】执行 push segue 后,当给搜索栏焦点时,导航栏隐藏【英文标题】:After performing a push segue, when giving searchbar focus the navigationbar hides 【发布时间】:2014-05-16 18:35:16 【问题描述】:

我有两个 UITableViewControllers,显示事件和对象。它们都在同一个导航控制器中。它们都包含搜索显示控制器。

当点击一个对象时,会执行一个 push segue 以显示由该对象过滤的事件视图。在这个 segue 之后,当点击 EventsViewController 中的搜索栏时,导航栏会向上滑动并隐藏。当搜索栏失去焦点时,导航栏会重新向下。

我意识到 push segue 会自动创建一个新的导航栏。但是如何确保搜索栏不会自动隐藏导航栏?在执行 push segue 之前,它会一直保持在导航栏下方。

如果您愿意,我可以发布代码,但我怀疑这在这种情况下会有所帮助。告诉我。

【问题讨论】:

【参考方案1】:

我以为我已经用谷歌搜索了足够多的东西,但我刚刚找到了答案。

    创建一个 UISearchDisplayController 类。 将 UISearchDisplayControllers 设置为已创建类的子类。

    在 UISearchDisplayController 类中,添加如下方法:

    -(void)setActive:(BOOL)visible animated:(BOOL)animated
    
    
        [super setActive:visible animated:animated];
        [self.searchContentsController.navigationController setNavigationBarHidden:NO animated:NO];
    
    

【讨论】:

以上是关于执行 push segue 后,当给搜索栏焦点时,导航栏隐藏的主要内容,如果未能解决你的问题,请参考以下文章

Push segue 搞乱了约束

展开 segue 后,swift 2 搜索栏不会隐藏

从 iphone 上的 push segue 导航返回时,顶部导航栏变得可见

从自定义导航栏展开 segue 后,如何切换回默认导航栏外观?

在 iOS7.1 中使用 show (push) segue 不会出现导航栏

无法在选择搜索结果时执行 unwind segue - 导航堆栈将不会更新