【发布时间】:2016-08-03 15:48:18
【问题描述】:
上下文:我正在使用 ArcGIS Runtime SDK 在 Objective C 中创建一个 IOS 应用程序。我的根视图控制器是一个地图。我可以选择创建空间书签并在推到视图上的表格视图中查看它们。我在表格视图上有一个 UISearchController 可以过滤掉书签。如果您选择书签而不进行搜索,您将自动平移到该位置。这是通过弹出所有视图控制器,并使用书签变量的标志加载根视图控制器以设置为起始范围来完成的。
我希望 searchController 表视图具有相同的功能。
但是,我要么无法关闭 searchController 并将书签缩放到,要么无法关闭搜索控制器,并且将用户带回初始表格视图。
到目前为止我所拥有的:
在 searchController TableView 的 didSelectRow 方法中:
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//Accept the spatial envelope and save it to the shared variable to be passed to main view controller
//Now dismiss the searchController and call method to zoom to bookmark
[self.navigationController dismissViewControllerAnimated:NO completion:^{
//reference to shared instance method
[[BookmarksTableViewController sharedBookmark] zoomToBookmark];
}];
在 BookmarksTableViewController.m 中
-(void)zoomToBookmark{
UIViewController *myController = [self.storyboard instantiateViewControllerWithIdentifier:@"viewController"];
[self.navigationController pushViewController: myController animated:YES];
//clear the navigation stack
self.navigationController.viewControllers = [[NSArray alloc] initWithObjects:myController, nil];
}
对我来说,这似乎应该可行,但所发生的只是 UISearchController 被解除,然后表格视图没有被解除,我又回到了输入搜索文本之前的位置。
对于关闭 UISearchController 或如何返回到我的根视图控制器的更好方法有什么想法吗?
【问题讨论】:
标签: objective-c xcode uitableview uisearchcontroller