如何在 tableview 搜索栏中获取对 navigationcontroller 的引用?

Posted

技术标签:

【中文标题】如何在 tableview 搜索栏中获取对 navigationcontroller 的引用?【英文标题】:How to get reference to navigationcontroller in tableview searchbar? 【发布时间】:2012-05-21 07:37:07 【问题描述】:

我在情节提要中设置了一个导航控制器和一个表格视图控制器。表格视图中有一个搜索栏。 我使用 self.navigationcontroller 获得了对导航控制器的引用。 我用

[self.navigationController setNavigationBarHidden:YES animated:animated];

在随后显示的视图中隐藏导航栏。 在不使用搜索栏的情况下选择表格视图中的单元格时,这可以正常工作。 但是,如果我使用搜索栏在表格视图中显示特定单元格,并且如果我从该表格中选择一个单元格,那么显然我会丢失对导航控制器的引用,因为尽管执行了上面的代码,导航栏仍然显示在如下视图。

我应该怎么做才能隐藏导航栏??

【问题讨论】:

【参考方案1】:

这是我发现的:NavigationBarHidden 属性显然已重置,因为当搜索栏离开视图时,它会在视图上再次发送导航栏。我不确定我是否完全理解正在发生的事情,但我 viewWillDisappear 中的这行代码解决了这个问题:

 self.searchDisplayController.active=NO;

【讨论】:

【参考方案2】:

为什么不在下面的视图控制器上执行那行代码?

- (void)viewWillAppear:(BOOL)animated

    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:animated];

【讨论】:

我已经尝试过了,但它不起作用。导航栏仍然显示

以上是关于如何在 tableview 搜索栏中获取对 navigationcontroller 的引用?的主要内容,如果未能解决你的问题,请参考以下文章

如何从搜索栏中获取输入值

在 UISearchController 中搜索时无法在 tableView 中滚动

如何在搜索栏中获取项目的详细信息?

将 UISearchBar 放在 tableview 上方但不在 tableview 或导航栏中

如何获取地址栏中的url

如何在我的导航栏中移动“导航栏品牌”下的“导航”元素