Ios 如何从UISearchController推送VC

Ios 如何从UISearchController推送VC,ios,objective-c,uinavigationcontroller,uisearchcontroller,Ios,Objective C,Uinavigationcontroller,Uisearchcontroller,我已经设置了一个UISearchController,如下所示: SearchTableViewController *searchView = [[SearchTableViewController alloc]initWithNibName:@"SearchTableViewController" bundle:nil]; UISearchController *searchController = [[UISearchController alloc]initWithSearchResul

我已经设置了一个UISearchController,如下所示:

SearchTableViewController *searchView = [[SearchTableViewController alloc]initWithNibName:@"SearchTableViewController" bundle:nil];
UISearchController *searchController = [[UISearchController alloc]initWithSearchResultsController:searchView];
[searchController setDefinesPresentationContext:YES];
searchController.delegate = searchView;
searchController.searchResultsUpdater = searchView;
[self presentViewController:searchController animated:YES completion:nil];
当我试图从搜索控制器推送某些内容时,如下所示:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
DetailTableViewController *seeAll = (DetailTableViewController *) [storyboard instantiateViewControllerWithIdentifier:@"DetailTableViewController"];
 NSLog(@"self.navigationController = %@", self.navigationController);
 [self.navigationController pushViewController:seeAll animated:YES];
[self presentViewController:searchController animated:YES completion:nil];
它不起作用。由于NSLog,我得到了空打印输出。有人能帮忙吗


这是我的IB文件

由于缺少
self
(SearchTableViewController)的导航堆栈,因此打印出来的结果是空的。似乎没有在情节提要中指定UINavigationController。你的main.storyboard文件是什么?使用故事板的一种可能配置如下所示:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
DetailTableViewController *seeAll = (DetailTableViewController *) [storyboard instantiateViewControllerWithIdentifier:@"DetailTableViewController"];
 NSLog(@"self.navigationController = %@", self.navigationController);
 [self.navigationController pushViewController:seeAll animated:YES];
[self presentViewController:searchController animated:YES completion:nil];

检查来自苹果的示例。它具有类似的功能。 另外,我不确定您是否需要这样的搜索控制器:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
DetailTableViewController *seeAll = (DetailTableViewController *) [storyboard instantiateViewControllerWithIdentifier:@"DetailTableViewController"];
 NSLog(@"self.navigationController = %@", self.navigationController);
 [self.navigationController pushViewController:seeAll animated:YES];
[self presentViewController:searchController animated:YES completion:nil];

您需要用另一个NavigationController实例化searchController

    SearchTableViewController *searchView = [[SearchTableViewController alloc]initWithNibName:@"SearchTableViewController" bundle:nil];
    UISearchController *searchController = [[UISearchController alloc]initWithSearchResultsController:searchView];
    [searchController setDefinesPresentationContext:YES];
    searchController.delegate = searchView;
    searchController.searchResultsUpdater = searchView;
UINavitagionController * navCont = [[UINavigationController alloc]initWithRootViewController: searchController];
    [self presentViewController:navCont animated:YES completion:nil];

好吧,我的视图层次结构有点不合理,所以请做好准备。我有一个导航控制器和一个VC,如上所示,除了VC有一个分段控件,它加载两个视图,如so
self.asd=[[asd alloc]init];[self.view addSubview:self.asd.view]然后这个VC再加载三个Xibs@MarkBourke您能澄清一下您在哪里执行问题中列出的第一批代码吗?也许你可以添加更多的代码,以便我能够理解上下文?如果您输入以下代码,将记录什么:
NSLog(@“self.navigationController=%@”,self.navigationController)创建UISearchController的位置?日志结果:self.navigationController=