我的目标是我的应用应该在iOS 7和iOS上运行iOS 8.由于在iOS 8中不推荐使用UISearchDisplayController,因此我在iOS 8中使用了UISearchController。但它在iOS 7中不起作用。如果我使用UISearchDisplayController,那么它将在iOS 7中运行。但是为两者实现搜索控制器的最佳方法是什么平台?在iOS 8中,我实现了如下的搜索控制器 -
override func viewDidLoad() {
super.viewDidLoad()
// Search Controller Setup
searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.delegate = self
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "ব্র্যান্ড/সংস্থা/দোকান খুঁজুন"
// Make sure the that the search bar is visible within the navigation bar.
searchController.searchBar.sizeToFit()
tableView.tableHeaderView = searchController.searchBar
definesPresentationContext = true
}
对于SWIFT中的iOS 7,如何以编程方式实现UISearchDisplayController,以确保搜索栏在导航栏中可见?
答案 0 :(得分:1)
使用ios7方式。即使它弃用了。 或者你必须制作两个代码,一个用于处理iOS7,另一个用于iOS8。 如果您的目标是iOS 7,Xcode将不会向您显示警告。
答案 1 :(得分:1)
searchController = UISearchController(searchResultsController: nil)
//更改搜索栏的外观
searchController.searchBar.tintColor = UIColor.whiteColor()
searchController.searchBar.barTintColor = UIColor(red: 235.0/255.0, green: 73.0/255.0, blue: 27.0/255.0, alpha: 1.0)
searchController.searchBar.placeholder = "Search Something"
searchController.searchBar.prompt = "Quick Search"
//使searchBar出现在导航栏中
searchController.searchBar.sizeToFit()
tableView.tableHeaderView = searchController.searchBar
definesPresentationContext = true
//您不需要将委托设置为self,而是
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false // important
在此之后,您需要遵守UISearchResultsUpdating协议并实施,
func updateSearchResultsForSearchController(searchController: UISearchController)
将包含您的搜索逻辑。