これが私のアプリの外観です。UINavigationController をサブクラス化して、ナビゲーション バーに似たボタンをタップすると MenuViewController がスライドするようにしました。VC1、VC2、VC3 の 1 つを UITableViewController メニュー内の didSelectRow から ContentViewController にプッシュ\表示するにはどうすればよいですか?
-> SlidingViewController / \ コンテナコンテナ | | | | MenuViewController ContentViewController | | | | UITableViewController サブクラス化された UINavigationController | | | | | | | | VC1 VC2 VC3 VC4
通常、次のコードのようなことを行いますが、上記の状況では、同じ UINavigationController にいない場合、新しいビュー コントローラーをプッシュする方法がわかりません。
NSString * storyboardName = @"MainStoryboard_iPhone";
NSString * viewControllerID = @"ViewID";
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
MyViewController * controller = (MyViewController *)[storyboard instantiateViewControllerWithIdentifier:viewControllerID];
[? presentViewController:controller animated:YES completion:nil];
編集:
機能する可能性のある解決策ですが、それが良い方法であるかどうかはわかりません。シングルトンを使用してナビゲーション コントローラーを保存し、後で使用しました。
私の ContentViewController 内:
[DataManager sharedDataManager].navController = self.navigationController;
MenuViewController の didSelectRow 内:
[[DataManager sharedDataManager].navController presentViewController:controller animated:YES completion:nil];