如何重置searchDisplayController以编程方式查看原始状态

时间:2012-12-21 07:22:01

标签: objective-c uisearchdisplaycontroller uisearchbardelegate

我有UISearchDisplayController页面视图如下(原始状态)

enter image description here

点击搜索栏并输入一些搜索字词后,我会在表格中找到结果列表

enter image description here

单击表格中的条目后,新的viewController将显示在堆栈顶部

enter image description here

我的意图是点击取消按钮(左上角),根视图将显示searchDisplay控制器的原始状态

enter image description here

这就是我试过的

在我的取消方法中(当我点击左上方的取消按钮时触发)

- (void)cancel
{
  [self dismissViewControllerAnimated:YES completion:NULL];
  [self searchBarCancelButtonClicked:self.searchDisplayController.searchBar];
}

在搜索栏委托方法中我做了这个

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    self.searchBar.showsCancelButton = NO;

    [self.searchBar resignFirstResponder];
    self.searchBar.text = @"";
    searchDisplayController.searchResultsTableView.hidden = YES;
    [self searchDisplayControllerWillEndSearch:self.searchDisplayController];
}

点击取消按钮后,我设法实现的是

enter image description here

原始的tableview似乎缺失(仅当我点击页面时才会显示)

如何修改我的方法以将搜索恢复为原始状态?

1 个答案:

答案 0 :(得分:8)

尝试[searchDisplayController setActive:NO animated:NO]

这应隐藏搜索表。