以编程方式创建一个splitviewcontroller,其中包含两个使用导航控制器的uiviewcontrollers

时间:2011-03-31 04:54:16

标签: uiviewcontroller uinavigationcontroller uisplitviewcontroller

我想以编程方式创建一个UISplitViewController,并将其作为主控和详细控制器(左右窗格),两个UIViewController子类,我用它来处理各种事情,比如选择单元格时的处理等等。

我的问题是,我不确定如何在这些自定义主控制器和详细控制器中创建导航控制器,并将它们连接到splitview控制器。目前,我添加我的控制器:

mSplitViewController.viewControllers = [NSArray 
    arrayWithObjects:mSplitMasterController,mSplitDetailController, nil];

我在每个自定义控制器中创建了一个容器UIView,我可以在其上组装我的子视图。我不确定如何将导航控制器添加到这些中。在定制控制器的loadView中我是否需要基本上做这样的事情?

[self.view addSubview:mNavigationController.view];

构建导航控制器将管理的控制器(及其视图)后?

1 个答案:

答案 0 :(得分:0)

您不需要UIView容器。如果想使用容器,则需要UIViewControllers。无论是直接将导航控制器添加到阵列。稍后您可以从同一阵列访问它们以在另一个拆分视图上推送和弹出。

RootViewController* rootViewController = [[RootViewController alloc] init];
navController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[rootViewController release];

splitVC = [[UISplitViewController alloc] init];

[window addSubview:splitVC.view];

TempViewController* tempViewController = [[TempViewController alloc] initWithNibName:@"TempViewController" bundle:nil];
detailNavController = [[UINavigationController alloc] initWithRootViewController:tempViewController];
[tempViewController release];

splitVC.viewControllers = [NSArray arrayWithObjects:navController, detailNavController, nil];