ios4 sdk ipad - 我们可以在窗口内放置两个VIEWS吗?

时间:2010-11-01 23:11:34

标签: objective-c ipad ios4

我想要像在ipad的MAIL应用中那样并排放置两个视图。这可能是UINavigationController吗?

我想并排两个UINavigationController

不要担心我想知道的语法是否可能

UINavigationConroller *left;  
UINavigationController *right;  

[WIndow addSubView: left];  
[WIndow addSubView:right];  

1 个答案:

答案 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;
}