Iphone UIViewController中的UINavigationController

Iphone UIViewController中的UINavigationController,iphone,cocoa-touch,uinavigationcontroller,uitabbarcontroller,Iphone,Cocoa Touch,Uinavigationcontroller,Uitabbarcontroller,我目前在基于选项卡的应用程序中有此工作流: 表1加载 ViewOne : UIViewController >> PickerView : UIViewController >> DetailView : UIViewController “>>”表示基于用户操作的加载。我想要PickerView和DetailView上的导航栏。PickerView只需要在导航栏左上角有一个取消按钮。DetailView需要正常的导航栏后退按钮。我

我目前在基于选项卡的应用程序中有此工作流:

表1加载

ViewOne : UIViewController
  >> 
    PickerView : UIViewController
    >> 
       DetailView : UIViewController
“>>”表示基于用户操作的加载。我想要PickerView和DetailView上的导航栏。PickerView只需要在导航栏左上角有一个取消按钮。DetailView需要正常的导航栏后退按钮。我已经通过IB将PickerView的导航条连接起来并开始工作。我不知道该怎么处理皮克维的导航栏

PickerView也从Tab2加载,Tab2的主视图以UINavigationController开始。在这种情况下,PickerView的导航条工作正常

ViewOne不应具有导航栏


有什么想法吗?

听起来你只是做了通常的事情:在ViewOne中,将导航控制器创建为:

UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:picker];
[self.view addSubview:nc.view];
[nc release];
后退按钮是自动创建的(除非您需要一个按钮才能从选择器返回到viewOne,在这种情况下,请创建一个按钮)

听起来您希望将DetailView显示为模式:

[自我呈现ModalViewController:detailView动画:是]

尽管您可以在导航控制器中正常使用它


当导航控制器可以为您完成所有操作时,听起来您可能过于担心导航的机制了?

它实际上需要是addSubview:nc.view。当我这样做时,添加的视图被向下推到足以让我看到它后面的第一个视图。似乎与状态栏占用的空间量相同。是吗你知道这是什么原因吗?代码已修复,谢谢。导航栏和选项卡栏下的视图转换是我们必须面对的问题;确保您的视图是使用正确的autoresizeMasks创建的,如果您使用“springs&struts”设置在IB中进行设置,这很容易做到。通过“springs&struts”,如果你的意思是IB中的所有自动调整大小箭头都是可见的,那么我就有了。但是,我仍然可以看到PickerView和它推下的任何视图被状态栏的大小压下。我必须添加这段代码才能工作:self.nc.view.frame=CGRectMake(0,0,380,460);