这就是我的应用程序的样子。我对 UINavigationController 进行了子类化,当您点击类似于导航栏的按钮时,MenuViewController 会滑出。如何将我的 VC1、VC2、VC3 之一从 UITableViewController 菜单内的 didSelectRow 推送到 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];