执行推送segue后,当给予搜索栏焦点时,导航栏会隐藏

时间:2014-05-16 18:35:16

标签: objective-c uinavigationbar uisearchbar segue uisearchdisplaycontroller

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

当点击对象时,执行推送segue以显示由对象过滤的事件视图。在此segue之后,当点击EventsViewController中的搜索栏时,导航栏会向上滑动并隐藏。当搜索栏失去焦点时,导航栏会回落。

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

如果你愿意,我可以发布代码,但我怀疑在这种情况下会有所帮助。让我知道。

1 个答案:

答案 0 :(得分:1)

我以为我已经足够搜索了,但我找到了答案。

  1. 创建一个UISearchDisplayController类。
  2. 将UISearchDisplayControllers设置为已创建类的子类。
  3. 在UISearchDisplayController类中,添加以下方法:

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