【发布时间】:2014-08-07 00:42:39
【问题描述】:
我想在用户访问 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;
在 SplitView 之前带有导航视图的代码
AppDelegate
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 *appDelegateTemp = [[UIApplication sharedApplication]delegate];
appDelegateTemp.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateInitialViewController];
这会将我从启动的 DummyViewController 带到作为 Storyboard 中初始视图控制器的 splitview 控制器。但是,这很好,当我这样做时,没有一个代表被调用。这可能是因为在更改根控制器时,它没有正确设置委托。我怎样才能让它以正确的方式工作?
【问题讨论】:
标签: ipad uisplitviewcontroller