如何以编程方式添加UISearchDisplay控制器?

时间:2011-08-09 10:33:56

标签: iphone ios uitableview uisearchdisplaycontroller

我一直在寻找这一天,但我找不到它......

有人能指点我一个教程/告诉我应该怎么做? 文档不是真的有用...... 我需要这个用于我的UITableViewController类(没有xib!)

非常感谢!

1 个答案:

答案 0 :(得分:1)

首先做Gray UISearchBar w/matching scope bar programmatically

然后由于tableview和searchtableview都使用相同的数据源,你必须在tableview委托方法中插入if语句,如下所示:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView == self.searchDisplayController.searchResutsTableView) {
        tableViewData = searchResultsData objectatindex...; //array with filtered data
    } else {
        tableViewData = defaultData objectatindex...; //array with unfiltered data
    }
}

对委托方法的行数执行相同的操作:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView == self.searchDisplayController.searchResultsTableView) {
        return searchResultsData.count;
    } else {
        return defaultData.count;
    }
}

然后在搜索文本更改或按下搜索按钮后(查看UISearchBar委托方法),重新加载要显示的数据。