【问题标题】:When search bar is tapped, bar button items are dismissed [closed]当点击搜索栏时,栏按钮项目被解除[关闭]
【发布时间】:2018-07-22 23:59:18
【问题描述】:

我有一个带有search bar 和两个UIBarButtonItems 的导航栏。如下所示:

问题是,当我点击search bar 时,两个UIBarButtonItems 被关闭,所以我无法访问它们。为此,我应该点击“取消”,它会关闭所有搜索的项目并返回table view 的初始状态。当我点击search bar时,我的导航栏如下所示:

有没有办法解决这个问题?

【问题讨论】:

  • 你能分享一些代码吗?您是否检查了条形按钮项目是否被解除或隐藏?
  • @Gihan,你需要配置search bar的代码还是什么?这不是search bar 的默认行为吗?我这么说是因为我没有明确地改变它的行为。
  • 不要将搜索栏移动到导航栏。
  • 试试 vc.hidesNavigationBarDuringPresentation = false
  • @Gihan,是的,它有效。感谢您的帮助

标签: ios swift uinavigationcontroller uinavigationbar uisearchbar


【解决方案1】:

不要使用带有搜索栏的导航控制器,只需自己实现一个搜索栏。您可以在按下按钮时显示它,也可以让它静态地位于页面上。

// be sure to add the UISearchBarDelegate to the vc 

var searchController:UISearchController!

func showSearchBar() {
    // initialize and present search bar
    searchController = UISearchController(searchResultsController: nil)
    searchController.hidesNavigationBarDuringPresentation = false
    self.searchController.searchBar.delegate = self
    present(searchController, animated: true, completion: nil)
}

【讨论】:

  • 我尝试将其添加为 table view 的标题视图,但它的行为仍然与旧方式相同
  • 你有这个的 git 仓库吗?
  • 我忘记将 searchBarhidesNavigationBarDuringPresentation 设置为 false。设置好后,我得到我想要的结果,所以不需要单独创建一个。无论如何,您的回答帮助我找到了解决方案,所以我会检查一下。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
  • 2011-01-30
  • 1970-01-01
相关资源
最近更新 更多