我试图为iOs8找到displaySearchBarInNavigationBar的替代品,有什么我可以使用的(在swift中)?
我尝试了self.navigationItem.titleView = resultSearchController.searchBar
,但它没有做任何事情。
我不知道如何找到已弃用的函数的替代品,在苹果文档中它只是说弃用了,如果你有任何提示,我将不胜感激。
答案 0 :(得分:8)
您可以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.
}
}
属性不同,请参阅以下代码:
cache: bundler
然后你可以在模拟器中看到类似的东西:
我希望这对你有所帮助。