我想要像在ipad的MAIL应用中那样并排放置两个视图。这可能是UINavigationController
吗?
我想并排两个UINavigationController
不要担心我想知道的语法是否可能
UINavigationConroller *left;
UINavigationController *right;
[WIndow addSubView: left];
[WIndow addSubView:right];
答案 0 :(得分:1)
UIWindow直接从UIView继承,因此可以向其添加多个对象,但是如果添加多个视图控制器,则只有其中一个会接收旋转事件。
执行Mail类型演示的正确方法是使用UISplitViewController,它自动处理两个视图和一个视图模式之间的转换。 “基于拆分视图的应用程序”的Xcode模板甚至会设置你,以便你有一个按钮,如果你是肖像,你可以将左视图视图作为UIPopoverController查看。
编辑:示例代码,带有拆分视图控制器:
// a tiny little method to vend a new navigation controller; following Cocoa patterns, because it
// has 'new' in the name it vends an owning reference (ie, not autoreleased, retain count +1)
- (UINavigationController *)newController
{
UITabBarController *tabBar = [[UITabBarController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tabBar];
[tabBar release];
return navController;
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// generate a split view controller
UISplitViewController *splitView = [[UISplitViewController alloc] init];
// grab a couple of navigation controllers
UINavigationController *navController1 = [self newController];
UINavigationController *navController2 = [self newController];
// add the navigation controllers to the split view controller
splitView.viewControllers = [NSArray arrayWithObjects:navController1, navController2, nil];
[navController1 release];
[navController2 release];
// and put the whole thing on screen
[window addSubview:splitView.view];
[window makeKeyAndVisible];
return YES;
}