在我的应用程序中,我有一个mainViewController,我正试图用来保存和控制我的应用程序的几个主视图。我首先加载了一个启动画面,但是我想要它,以便当用户点击启动画面时,它们会被带到主菜单。
我的启动画面部分工作正常,但我在使用NavigationController部件时遇到了问题。
[splashView.view removeFromSuperview];
mainMenu = [[menuScreenViewController alloc] initWithNibName:@“menuScreenViewController”bundle:nil]; mainMenu.title = @“菜单”; mainNavController = [[UINavigationController alloc] init]; [mainNavController pushViewController:mainMenu animated:NO];
[MAINVC.view addSubview:mainNavController.view];
[mainMenu发布]; [mainNavController release];
[splashView release];
(MAINVC在别处定义为我的主视图控制器)。
无论如何,当我这样做时,我得到标题为“菜单”的导航控制器,但mainMenu视图控制器中包含的视图不会显示在导航控制器中。
如果我只是添加mainMenu的视图,那么它就是MAINVC.view的子视图,它会正确显示。
有关如何让它显示在我的导航控制器中的任何建议吗?
答案 0 :(得分:0)
avery,您将需要使用mainMenu作为其根视图控制器来初始化导航控制器,而不是仅仅初始化然后再推送新视图。它需要根视图控制器才能工作。
mainMenu = [[menuScreenViewController alloc] initWithNibName:@"menuScreenViewController" bundle:nil];
mainMenu.title = @"Menu";
mainNavController = [[UINavigationController alloc] initWithRootViewController:mainMenu];
//ADD MODAL SPLASH SCREEN HERE
[MAINVC.view addSubview:mainNavController.view];
[mainMenu release];
[mainNavController release];
[splashView release];
如上面的评论所示,我建议你以这种方式初始化,然后将你的启动画面作为modalViewController添加到导航控制器。当您点击触摸屏时,这将防止您在mainMenu初始化时可能出现的任何延迟。然后,当模态视图接收到触摸时,您可以调用:
[self.parentViewController dismissModalViewControllerAnimated:YES];