当前位置:  开发笔记 > IOS > 正文

从搜索结果表(UISearchController)导航到视图(推送),并将搜索结果保留在适当的位置

如何解决《从搜索结果表(UISearchController)导航到视图(推送),并将搜索结果保留在适当的位置》经验,为你挑选了1个好方法。

我有一个搜索结果表(UISearchController),显示在导航堆栈上的视图上。我在视图上显示搜索控制器和表格,如下所示:

    _searchResultsTableViewController = [[CalendarSearchResultsTableViewController alloc] init];
_searchResultsTableViewController.delegate = self;

_searchController = [[UISearchController alloc] initWithSearchResultsController:_searchResultsTableViewController];
_searchController.delegate = self;
_searchController.hidesNavigationBarDuringPresentation = NO;
_searchController.dimsBackgroundDuringPresentation = YES;
_searchController.obscuresBackgroundDuringPresentation = YES;
_searchController.active = YES;

_searchController.searchBar.delegate = self;

UIEdgeInsets adjustForTabbarInsets = UIEdgeInsetsMake(0, 0, CGRectGetHeight(self.tabBarController.tabBar.frame), 0);
_searchResultsTableViewController.tableView.contentInset = adjustForTabbarInsets;
_searchResultsTableViewController.tableView.scrollIndicatorInsets = adjustForTabbarInsets;

[self.navigationController presentViewController:_searchController animated:YES completion:nil];

这将显示一个UISearchBarUINavigationBar搜索表将按预期显示。当用户从表中选择搜索结果时,我想通过在搜索结果保留在原处的情况下将其推入导航堆栈中来显示选择视图。我现在的工作方式是,显示搜索控制器的视图打开该视图,但这需要关闭搜索控制器,因为search result view出现在搜索结果表的后面。

如何使搜索控制器将推入search result view导航堆栈,从而使用户能够导航回搜索结果?

我希望它如何工作的一个示例可以在iOS Mail of Calendar应用程序中找到(搜索时)。

navigationController在搜索结果控制器中的属性为nil,因此我目前无法search result view从那里显示。

该项目在Objective-C和Swift中都可以使用,因此在其中任何一个答案都可以。任何帮助深表感谢!



1> Warif Akhand..:

我认为您需要进行3个小更改。

    _searchController.hidesNavigationBarDuringPresentation = YES;

    [self presentViewController:_searchController animated:YES completion:nil];

    self.definesPresentationContext = YES; // viewDidLoad呈现searchController的viewController中的//

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有