我正在尝试为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/

10-11 04:26