【问题标题】:How to dismiss a UISearchController from UINavigationItem?如何从 UINavigationItem 中关闭 UISearchController?
【发布时间】:2018-04-19 00:08:07
【问题描述】:

我有一个 UIViewController 嵌入在一个 UINavigationController 中,一个 UICollectionView 填充了屏幕。在UINavigationBar 中,我有一个按钮,选中时在UINavigationBar 下方显示UISearchBar。我有这一切工作正常。问题是,当在UISearchBar上选择取消按钮时,我无法让搜索栏解雇。这是我的代码:

var searchController = UISearchController()

override func viewDidLoad() {
    super.viewDidLoad()

    searchController = UISearchController(searchResultsController: nil)
    searchController.searchResultsUpdater = self
    searchController.delegate = self
    searchController.searchBar.delegate = self
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.dimsBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Search for Title"

    self.navigationItem.searchController = searchController
}

@IBAction func searchSelected(_ sender: UIBarButtonItem) {
    searchController.isActive = true
}

func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
    print("cancel clicked")
    searchController.isActive = false
}

【问题讨论】:

  • 是否调用了 print("cancel clicked")?
  • 是的,正在调用“取消点击”

标签: swift uinavigationcontroller uisearchcontroller


【解决方案1】:

用途:

navigationItem.searchController = nil

【讨论】:

    猜你喜欢
    • 2019-10-15
    • 2016-10-05
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多