UISearchDisplayController
有一个名为boolean
的{{1}}属性。 iOS 8中的等价物是什么让我的搜索栏向上移动?非常感谢任何指导。
这是我的代码,我不完全确定为什么这不起作用。当我单击搜索栏时,它会消失,而不是移动自身和导航栏。
displaysSearchBarInNavigationBar
答案 0 :(得分:85)
根据Apple的说法:
在iOS 8中不推荐使用
UISearchDisplayController
。(请注意,UISearchDisplayDelegate
也已弃用。)要管理搜索栏的显示并在iOS 8及更高版本中显示搜索结果,请使用{{3 }}。
UISearchController
类定义了一个界面,用于管理与搜索结果控制器内容一致的搜索栏的显示。搜索结果控制器是UISearchController
属性指定的UIViewController
对象,用于管理搜索结果。
现在,您可以使用UISearchController
以下列方式在导航栏中显示搜索栏:
class ViewController: UIViewController, UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate {
var searchController : UISearchController!
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.navigationItem.titleView = searchController.searchBar
self.definesPresentationContext = true
}
func updateSearchResults(for searchController: UISearchController) {
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
但你必须考虑在这个故事板中设置一个UINavigationController
:
您可以轻松选择ViewController
并执行以下步骤:
然后,当您在搜索栏中点击以下图片时,您应该会在设备中看到:
我希望这可以帮到你