将两个导航控制器添加到一个选项卡栏项

时间:2011-03-10 12:10:41

标签: iphone cocoa ipad

我想将2个导航控制器附加到一个标签栏项目。

基本上,我们的想法是在一个标签项目上有2个视图,并且应该有一个导航栏来推送和弹出屏幕。 (与iPad中的设置应用程序相同)。

编辑==

在左侧看起来有一个带有自己的导航控制器的View,在右侧有另一个带有自己的导航控制器(或其他一些UI)的View来实现Push Pop的东西。

我知道如何将1个导航控制器附加到一个标签栏项目。

为ModalView问题编辑: -  通过实现conmulligan代码一切工作属性。但是如果我尝试在lansdscape模式下显示一些ModalViewController,当我尝试关闭这个ModalView时,FirstViewController导航栏变为肖像(连同它的View)和SecondViewController NavigationBar仍然是风景(应该是)。这只发生在设备不在模拟器中。

下面是我展示ModalViewController的代码。

ModalTableViewController *modalTableViewController = [[ModalTableViewController alloc]initWithNibName:@"ModalTableViewController" bundle:[NSBundle mainBundle]]; 
UINavigationController *localNavigationViewController = [[UINavigationController alloc] initWithRootViewController:modalTableViewController];
localNavigationViewController.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:localNavigationViewController animated:YES];
[modalTableViewController release];
[localNavigationViewController release];

对于Disalise ModalViewCntroller,我按如下方式进行: -

[self dismissModalViewControllerAnimated:YES]; 

等待您的回复。enter image description here

1 个答案:

答案 0 :(得分:4)

一种方法是创建一个包含两个导航控制器的UIViewController子类,并将其添加到UITabBarController。以下是您使用UIViewController的{​​{1}}方法创建和布局导航控制器的方法:

-viewDidLoad

这或多或少是FirstViewController *firstViewController = [[FirstViewController alloc] init]; UINavigationController *firstNavigationController = [[UINavigationController alloc] initWithRootViewController:firstViewController]; [firstViewController release]; SecondViewController *secondViewController = [[SecondViewController alloc] init]; UINavigationController *secondNavigationController = [[UINavigationController alloc] initWithRootViewController:secondViewController]; [secondViewController release]; firstNavigationController.view.frame = CGRectMake(0.f, 0.f, 320.f, self.view.frame.size.height); firstNavigationController.view.autoresizingMask = UIViewAutoresizingFlexibleHeight; secondNavigationController.view.frame = CGRectMake(321.f, 0.f, self.view.frame.size.width - 321.f, self.view.frame.size.height); secondNavigationController.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleRightMargin; [self.view addSubview:firstNavigationController.view]; [self.view addSubview:secondNavigationController.view]; 在幕后工作的方式。

编辑:您可能需要添加以下代码以确保其正确布局:

UISplitViewController