【发布时间】:2017-12-14 07:23:26
【问题描述】:
我已经在带有表格视图和搜索控制器的 viewController 中实现了一个搜索控制器,当点击搜索按钮时显示搜索栏,搜索按钮是 UIBarButtonItem 并且搜索栏显示在导航控制器中,但我想要为了在点击取消按钮时消失,我尝试使用 serarchBarDelegate 协议,但点击这里的代码没有任何反应
class NewsTVController: UIViewController, UITableViewDataSource, UITableViewDelegate,UISearchResultsUpdating,UISearchBarDelegate{
let searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
super.viewDidLoad()
searchController.searchResultsUpdater = self
definesPresentationContext = true
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = true
self.searchController.hidesNavigationBarDuringPresentation = false
loadNews()
}
@IBAction func searchButtonTaped(sender:UIBarButtonItem){
print("tap inside")
self.navigationItem.titleView = searchController.searchBar
//self.navigationItem.rightBarButtonItem?.action = #selector(hideSearchBar(:))
// searchController.searchBar.touchesCancelled(UITouch, with: .touchUpInside){
//}
//self.navigationItem.rightBarButtonItem.
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
hideSearchBar()
}
func hideSearchBar() {
print("hay que escpder")
//navigationItem.setLeftBarButtonItem(searchBarButtonItem, animated: true)
//logoImageView.alpha = 0
UIView.animate(withDuration: 0.3, animations: {
self.navigationItem.titleView = nil// = self.logoImageView
self.navigationItem.title = "Eventos"
//self.logoImageView.alpha = 1
}, completion: { finished in
})
}
}
我想要的是,当点击取消按钮时,导航栏保持在第一张图片中,没有搜索栏。 还有一些提示,当搜索栏出现时,有一种方法可以隐藏后退按钮和搜索按钮。
【问题讨论】:
标签: ios swift uinavigationcontroller uisearchcontroller