加载一个UINavigationController从UIViewController的
子视图我在iPhone development.I一个newbi想建立一个应用程序,它会先有一个UIViewController,这将对点击按钮button.Now,它shud加载UINavigation控制器。下面是我为接近:加载一个UINavigationController从UIViewController的
-
我创建了一个UIViewController类,我在那里拍了
-(IBAction) PressMeFunc:(id) sender
的按钮被按下。
然后,我创建了一个UIView厦门国际银行file.I的确在IB所需的步骤。
然后在AppDelegate中,我添加了ViewController中的实例作为窗口的子视图。
为了达到这个目的,
接下来,我如何加载按钮上的导航控制器?
我知道如何建立从基于窗口的应用程序一个navigationController项目,但我有一个艰难的时间做NavigationController作为的UIView的子视图。
非常感谢您的帮助。
的NavigationController设计时,它被用来占据整个画面,所以你必须决定如何管理从原来的ViewController过渡到NavigationController。您可以使用presentModalViewController来完成此任务,或者通过处理删除原始视图并以编程方式交换NavigationController。
这里的the Apple documentation用于编程建立NavigationController。
的代码将看起来像这样(从苹果的doc):
GroupsController *groupsController = [[[GroupsController alloc] initWithNibName:nil bundle:nil] autorelease];
UINavigationController *navigationController =
[[UINavigationController alloc] initWithRootViewController:groupsController];
现在,一旦你已经创建了NavigationController,并增加了它的第一个视图 - 控制它,你需要转换到它。你可以做到这一点与CATransitions,或
[myViewController presentModalViewController: navigationController];
你不应该作为一个子视图到另一个视图控制器管理的视图中添加UIViewController的(包括导航)视图。
这里有一个相关阅读: http://blog.carbonfive.com/2011/03/09/abusing-uiviewcontrollers/
在你的情况,你可以做的是从窗口删除视图 - 控制的观点,然后导航控制器的视图添加到窗口。
[viewController.view removeFromSuperview];
[window addSubview:navigationController.view];
您也可以将其添加为一个模式视图控制器在这里建议,或者你可以做第一个视图控制器导航控制器,并在该导航控制器的堆栈,推动第二导航控制器:
[navigationController pushViewController:secondNavigation animated:NO];
编辑:嘿刚刚注意到我在回答问题09
编辑#2:这可能是无关的iOS 5,他们已经加入的UIViewController围堵的事情,仍然没有机会检查它出来了,但如果你你正在读这个答案,你可能想。
谢谢马克的快速回复。 我已经下载了你提到的Apple文档。 我会通过它并尝试从UIViewController加载NavigationController;但我不知道presentModalViewController是什么。 其实我想在NavigationController中加载一个xml,点击UIViewController中的按钮。 问候, Xcodermi2 – XcoderMi2 2009-05-01 18:43:42
这是苹果的一个耻辱,也有很多的问题,除非你只添加的UINavigationController的主窗口,他们可以有至少做了说明在docs – valexa 2010-08-19 13:23:35