コンテキスト:ArcGIS Runtime SDKを使用してObjective CでIOSアプリケーションを作成しています。私のルートビューコントローラはマップです。私は、空間的なブックマークを作成し、ビューにプッシュされたテーブルビューでそれらを表示するオプションを持っています。ブックマークを除外できるように、テーブルビューにUISearchControllerがあります。検索せずにブックマークを選択すると、その場所に自動的にパンされます。これは、すべてのView Controllerをポップし、ブックマーク変数を開始エクステントとして設定するためのフラグをルートビューコントローラにロードすることによって行われます。UISearchControllerを終了するUITableViewを表示してルートビューコントローラに移動する
searchControllerテーブルビューで同じ機能を使用したいと思います。
ただし、searchControllerを閉じることができず、ブックマークがにズームされているか、検索コントローラが閉じられ、ユーザーが最初のテーブルビューに戻されます。私がこれまで持って何
:searchControllerテーブルビューでdidSelectRow方法で
: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];
}
で
(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];
}];
私にとって、これは動作するはずのようにそれはそう、しかし、UISearchControllerが終了した後、テーブルビューは閉じられず、検索テキストを入力する前に戻っています。
UISearchControllerを無効にする方法やルートビューコントローラに戻す方法について考えてみましょうか?