如何重命名seachDisplayController以编程方式查看原始状态

Zhe*_*hen 4 objective-c uisearchdisplaycontroller uisearchbardelegate

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

这就是我尝试过的

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

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

在searchbar委托方法中我做到了这一点

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

    [self.searchBar resignFirstResponder];
    self.searchBar.text = @"";
    searchDisplayController.searchResultsTableView.hidden = YES;
    [self searchDisplayControllerWillEndSearch:self.searchDisplayController];
}
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

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

Leo*_*ica 8

尝试 [searchDisplayController setActive:NO animated:NO]

这应该隐藏搜索表.