我正在尝试为iOs8找到displaySearchSearchBarInNavigationBar的替代产品,我有什么可以使用的( swift 使用)吗?
我尝试了self.navigationItem.titleView = resultSearchController.searchBar
,但是它什么也没做。
我不明白如何找到不推荐使用的功能的替代品,在Apple文档上它只是说不推荐使用,如果您有任何提示,将不胜感激。
最佳答案
您可以毫无问题地将UISearchBar
放入UINavigationBar
中,而无需使用UINavigationController
,但是您只需要做些小改动,首先需要在@IBOutlet
内的UINavigationItem
中定义一个UINavigationBar
,但其名称必须与已定义的navigationItem
属性不同在所有UIViewController
类中,请参见以下代码:
class ViewController: UIViewController, UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate {
var searchController : UISearchController!
@IBOutlet weak var navigationItemBar: UINavigationItem!
override func viewDidLoad() {
super.viewDidLoad()
self.searchController = UISearchController(searchResultsController: nil)
self.searchController.searchResultsUpdater = self
self.searchController.delegate = self
self.searchController.searchBar.delegate = self
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.dimsBackgroundDuringPresentation = true
self.navigationItemBar.titleView = searchController.searchBar
self.definesPresentationContext = true
}
func updateSearchResultsForSearchController(searchController: UISearchController) {
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
然后,您可以在模拟器中看到以下内容:
希望对您有所帮助。
关于ios - displaysSearchBarInNavigationBar在iOS8中已弃用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30607128/