Ios UISearchController在按下时不隐藏视图

Ios UISearchController在按下时不隐藏视图,ios,uitableview,uisearchbar,uisearchdisplaycontroller,uisearchcontroller,Ios,Uitableview,Uisearchbar,Uisearchdisplaycontroller,Uisearchcontroller,我正在使用UISearchController在UITableView中显示搜索栏和结果。我设法将其正确设置,但当我搜索结果,然后在tableview中选择一行,并将新的视图控制器推送到导航堆栈时,我希望搜索栏不再可见。但是,当我尝试此操作时,第一个视图控制器中的搜索栏在第二个视图控制器中可见: if (self.searchController == nil) { self.searchController = [[UISearchController alloc] initW

我正在使用UISearchController在UITableView中显示搜索栏和结果。我设法将其正确设置,但当我搜索结果,然后在tableview中选择一行,并将新的视图控制器推送到导航堆栈时,我希望搜索栏不再可见。但是,当我尝试此操作时,第一个视图控制器中的搜索栏在第二个视图控制器中可见:

    if (self.searchController == nil) {
    self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
    self.searchController.searchResultsUpdater = self;
    self.searchController.dimsBackgroundDuringPresentation = NO;
    self.searchController.searchBar.scopeButtonTitles = @[];
    self.searchController.searchBar.delegate = self;

    self.tableView.tableHeaderView = self.searchController.searchBar;
}
一个选项是在DidSelectRowatineXpath:中调用self.searchController setActive:NO],但如果没有每次从中选择搜索结果时关闭搜索栏这一令人分心的动画,则无法做到这一点

有人有同样的问题吗?有没有办法告诉UISearchController在按下时隐藏搜索栏?当我使用UISearchDisplayController时,它工作得很好,请将其放入调用者的viewDidLoad中:

斯威夫特:

self.definesPresentationContext = true
目标C:

self.definesPresentationContext = YES;

这为我解决了问题。

这有帮助吗?这是一个多么模糊的解决方案。但果不其然,它成功了!在什么的视野中?当前或目标控制器。但这两种情况都不起作用。我不知道还有什么更奇怪。它对你有用还是对我无效。