加载一个UINavigationController从UIViewController的

问题描述:

子视图我在iPhone development.I一个newbi想建立一个应用程序,它会先有一个UIViewController,这将对点击按钮button.Now,它shud加载UINavigation控制器。下面是我为接近:加载一个UINavigationController从UIViewController的

  1. 我创建了一个UIViewController类,我在那里拍了

    -(IBAction) PressMeFunc:(id) sender 
    

    的按钮被按下。

  2. 然后,我创建了一个UIView厦门国际银行file.I的确在IB所需的步骤。

  3. 然后在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]; 
+0

谢谢马克的快速回复。 我已经下载了你提到的Apple文档。 我会通过它并尝试从UIViewController加载NavigationController;但我不知道presentModalViewController是什么。 其实我想在NavigationController中加载一个xml,点击UIViewController中的按钮。 问候, Xcodermi2 – XcoderMi2 2009-05-01 18:43:42

+2

这是苹果的一个耻辱,也有很多的问题,除非你只添加的UINavigationController的主窗口,他们可以有至少做了说明在docs – valexa 2010-08-19 13:23:35

你不应该作为一个子视图到另一个视图控制器管理的视图中添加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围堵的事情,仍然没有机会检查它出来了,但如果你你正在读这个答案,你可能想。