在表视图中实现搜索栏

时间:2015-10-17 10:55:11

标签: objective-c xcode

我目前正在学习iOS开发。不幸的是,我注册的课程是基于iOS 7的,似乎没有任何支持。然而,我有Xcode 7,并且在试图在表视图中实现搜索栏时变得非常困难。我一直在寻找有关如何修复“searchDisplayController”的答案。弃用,虽然有信息,但对于Objective-C的新手,我还没有找到解决问题的方法。

我有一个非常基本的TableView应用程序,它只是在TableView中显示一年中的几个月。我已经添加了"搜索栏和搜索显示控制器"到TableView。这是我的代码的第一部分,Xcode告诉我' searchDisplayController'在TableViewController.m':

中弃用
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    // Return the number of rows in the section.
    if (tableView == self.searchDisplayController.searchResultsTableView) {
        return [_filteredResults count];
    }
    else {
       return [_monthsOfTheYear count];
    }
}

如果有人能让我知道我需要做什么,或者指向一个可以帮助我理解它的教程,我将非常感激。

谢谢!

3 个答案:

答案 0 :(得分:2)

您正在寻找UISearchController。您可以通过Apple Documentation获取此信息。这是一个good tutorial。您也可以查看此SO postthis video也会加入你的知识库。

答案 1 :(得分:0)

UISearchController取代UISearchDisplayControllerHere is a tutorial重新:如何使用它。

答案 2 :(得分:0)

添加此属性

let searchController = UISearchController(searchResultsController: nil) 

并在viewDidLoad

中添加此代码
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
definesPresentationContext = true
yourTableView.tableHeaderView = searchController.searchBar
yourTableView.contentOffset = CGPoint(x: 0, y: searchController.searchBar.frame.height)

有关详细信息,请查看此tutorial以获取swift和this tutorial