ios - navigationItem.set_BarButton 不起作用 - 快速

标签 ios swift uisearchbar uinavigationitem

我正在实现一个隐藏的搜索栏。

一切正常,除了隐藏搜索栏的功能中需要带回栏按钮的命令之外。

此外,UISearchBar.showCancelButton 也不起作用,所以我必须手动实现取消按钮。 (我已将搜索栏的委托(delegate)设置为 self)

这是代码:

func dismissSearch() {
    searchBar.text = ""
    view.endEditing(true)
    tagSearchResults = [Tag]()
    TagSearchFeed?.collectionView.reloadData()
    searchResultsContainer.isHidden = true
    hideSearchBar() 
}



func showSearchBar() {
    searchBar.alpha = 0
    navigationItem.titleView = searchBar
    let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(searchBarCancelButtonClicked))
    cancelButton.tintColor = .white
    navigationItem.setRightBarButton(cancelButton, animated: true)
    navigationItem.setLeftBarButton(nil, animated: true)
    UIView.animate(withDuration: 0.5, animations: {
        self.searchBar.alpha = 1
    }, completion: { finished in
        self.searchBar.becomeFirstResponder()
    })
    self.searchResultsContainer.isHidden = false
}

func hideSearchBar() {
    navigationItem.setRightBarButton(self.searchButton, animated: true)
    navigationItem.setLeftBarButton(self.menuButton, animated: true)
    UIView.animate(withDuration: 0.3, animations: {
        self.navigationItem.titleView = nil
    }, completion: { finished in

    })

}

@objc func searchBarCancelButtonClicked() {
    dismissSearch()
}

如何解决这些问题?

最佳答案

事实证明,那些栏按钮项目为零,我将 socket 更改为强,现在它可以工作了。 来自:

@IBOutlet var weak searchButton: UIBarButtonItem!
@IBOutlet var weak menuButton: UIBarButtonItem!

致:

@IBOutlet var searchButton: UIBarButtonItem!
@IBOutlet var menuButton: UIBarButtonItem!

关于ios - navigationItem.set_BarButton 不起作用 - 快速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51021051/

相关文章:

ios - 在 Xamarin iOS 中拒绝位置权限时应用程序崩溃

ios - 在 iOS 上使用多项选择应用程序实现多项问题的建议

iOS - 在后台播放 "called"时的铃声

ios - UISearchBar - UISearchBar 的不同表格 View 背景

ios - 在不使用 prepareforsegue 的情况下在 View Controller 之间传递数据

ios - 字典文字包含重复键

ios - 通过 ms-word 打开 Office 文档 :ofe on iPad

ios - 适用于 iOS 的 XMPPFramework,didReceiveTrust 实现

ios - NSComparisonResult 选项

ios - 是否可以在单独的文件中包含UISearchBarDelegate扩展名?