我想将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];
等待您的回复。
答案 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