Ipad ios在splitview控制器之前添加导航

Ipad ios在splitview控制器之前添加导航,ipad,uisplitviewcontroller,Ipad,Uisplitviewcontroller,我想在用户访问splitview控制器之前添加导航视图控制器。当我想从导航控制器切换到splitview控制器时,我尝试了几种更改根控制器的方法,但在这样做时,我似乎没有正确设置代理 无导航视图的代码(工作正常): AppDelegate UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController; UINavigationController *navi

我想在用户访问splitview控制器之前添加导航视图控制器。当我想从导航控制器切换到splitview控制器时,我尝试了几种更改根控制器的方法,但在这样做时,我似乎没有正确设置代理

无导航视图的代码(工作正常)

AppDelegate

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;

UINavigationController *masterNavigationController = splitViewController.viewControllers[0];
MasterViewController *controller = (MasterViewController *)masterNavigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
 UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"dummy"];
self.window.rootViewController = rootController;
[self.window makeKeyAndVisible];
在拆分视图之前使用导航视图编码

AppDelegate

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;

UINavigationController *masterNavigationController = splitViewController.viewControllers[0];
MasterViewController *controller = (MasterViewController *)masterNavigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
 UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"dummy"];
self.window.rootViewController = rootController;
[self.window makeKeyAndVisible];
DummyViewController

AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate]; 
appDelegateTemp.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateInitialViewController];

这将把我从启动到的DummyViewController带到splitview控制器,它是故事板中的初始视图控制器。这很好,但是,当我这样做的时候,没有一个代表被呼叫。这可能是因为在更改根控制器时,没有正确设置代理。如何才能使其正确工作?

似乎唯一真正非黑客方式是在“详细视图”控制器中的拆分视图上显示模式视图

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
DummyViewController *dummy = (DummyViewController *)[storyboard instantiateViewControllerWithIdentifier:@"dummy"]; 
[self presentViewController:dummy animated:NO completion:nil];
通过将“动画”设置为“否”,用户不会看到在其后面加载的分割视图