我使用SplitViewNavigator模板创建了一个新的XCode项目。 MasterViewController的其中一个navigationItems应该提供一个配置ViewController(iPhone上的fullScreen,在iPad上弹出)。在UISplitViewNavigator的MasterViewController上呈现ViewController
此配置控制器已在单独的故事板(Filter.storyboard)中创建。 在这个故事板中,我在舞台上拖动了一个ViewController,并将其嵌入到导航控制器(编辑器 - >嵌入 - >导航控制器)中,因为配置本身由用户可以通过的不同屏幕组成。 NavigationController已被赋予StoryBoard ID“FilterNavController”。
我已经在其他应用程序中做了几次,所以这确实有效。不幸的是,我无法使用SplitViewNavigator模板工作。
下面是我如何尝试打开过滤器控制器,一旦按钮被点击,没有什么特别的;
UIStoryboard *filterBoard = [UIStoryboard storyboardWithName:@"Filter" bundle:nil];
UINavigationController *filterNavController = [filterBoard instantiateViewControllerWithIdentifier:@"FilterNavController"];
UIViewController *vc = [filterNavController.viewControllers objectAtIndex:0];
[self.navigationController presentViewController:vc animated:YES completion:nil];
self是MasterViewController。
从我没有受过教育的角度来看,我没有看到任何理由为什么这不起作用。正如我所说,它在其他(非SplitViewNavigator模板)应用程序中执行。 我得到的错误消息如下:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present modally an active controller <UINavigationController: 0x7f9bab61a700>.'
不知道究竟发生了什么怎么回事,但它已经花了我半天。 有趣的是,当我在Filter.storyboard上创建一个UIViewController并设置它的StoryBoardID时,ViewController就会呈现。不过,我需要将它嵌入到UINavigationController中。
任何帮助将不胜感激!