如何为iOS 7和iOS实现搜索控制器iOS 8

时间:2015-01-27 09:42:17

标签: swift ios7 ios8 uisearchdisplaycontroller uisearchcontroller

我的目标是我的应用应该在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,以确保搜索栏在导航栏中可见?

2 个答案:

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

将包含您的搜索逻辑。