在iOS8中不推荐使用displaysSearchBarInNavigationBar

时间:2015-06-02 21:42:45

标签: ios swift ios8 uisearchbardisplaycontrol

我试图为iOs8找到displaySearchBarInNavigationBar的替代品,有什么我可以使用的(在swift中)?

我尝试了self.navigationItem.titleView = resultSearchController.searchBar,但它没有做任何事情。

我不知道如何找到已弃用的函数的替代品,在苹果文档中它只是说弃用了,如果你有任何提示,我将不胜感激。

1 个答案:

答案 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

然后你可以在模拟器中看到类似的东西:

enter image description here

我希望这对你有所帮助。