少し遅れていることはわかっていますが、誰かがいつか答えが役立つと思うかもしれません。
マックスの答えは一般的に良い答えです。ただし、元の投稿者の質問は少しあいまいです。彼/彼女は、トランジションが中央のビュー コントローラーで必要か、左側のビュー コントローラーで必要かを指定しませんでした。
トランジションが左側のビューコントローラーにあると仮定します。
push transitionが必要な場合は、次のようなコードを使用できます。
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0) {
UINavigationController * nc = (UINavigationController *)self.viewDeckController.leftController;
UIViewController * vc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"yourView"]; // use the name of the view (not the navigation view controller)
[nc pushViewController:vc animated:YES];
}
}
Modal transitionが必要な場合は、前の if ステートメント句内のコードを次のコードに置き換えるだけです。
UIViewController * vc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"yourViewName"]; // don't use the name of a navigation controller
UINavigationController * nc = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentViewController:nc animated:YES completion:nil];
このコードのナビゲーション コントローラーは、ナビゲーション バーを表示するために使用されます。ナビゲーション バーが必要ない場合は、ナビゲーション コントローラーの定義を省略し、代わりにビュー コントローラーをパラメーターとしてpresentViewController: animated: completion:
メソッドに渡します。
トランジションが中央のビューコントローラーにあると仮定します。
Max が提供したコードを使用できます。彼が新しいView Controllerを示した方法は、既存の中央のView Controllerを置き換えることであることに注意してください. 新しいビュー コントローラは、プッシュもモーダル表示もされません。新しいビュー コントローラーを既存の中央のビュー コントローラーにプッシュする場合は、上記の前の 2 つのコードで遷移を導入したのと同じ方法を使用する必要があります。したがって、次のようになります。
Push Transition : (次のコードは、最初のコード片の if ステートメント句内のコードを置き換える必要があります)
[self.viewDeckController closeLeftView];
UINavigationController * nc = (UINavigationController *)self.viewDeckController.centerController;
[nc pushViewController:[[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"yourViewName"] parentViewController] animated:YES];
モーダル プレゼンテーション: (次のコードは、最初のコード片の if ステートメント句内のコードを置き換える必要があります)
[self.viewDeckController closeLeftView];
UINavigationController * center = (UINavigationController *)self.viewDeckController.centerController;
UIViewController * vc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"yourViewName"];
UINavigationController * nc = [[UINavigationController alloc] initWithRootViewController:vc];
[center presentViewController:nc animated:YES completion:nil];