我怎么能添加splitview到我的基于视图的应用程序在iPad编码

我使用基于View的应用程序启动我的iPad应用程序。 在前两个视图我添加表视图。 现在作为第三个视图我想添加splitView到视图,为此我将splitview控制器添加到我的xib文件。 我怎么编写编程部分。 请使用任何有用的链接或源代码。

I am using view based class like as follows: - (void)viewDidLoad { [super viewDidLoad]; } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. // eg self.myOutlet = nil; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return YES; } 

我在哪里实现代码? 提前致谢。

正如我所知的拆分视图控制器,你必须创build新的拆分视图为基础的应用程序,或者你必须通过编程实现。 为此,您需要创build一个主视图控制器,其中包含splitview和一个表视图控制器没有nib文件,并包含表视图控制器添加一个视图控制器,其中显示细节

在主控制器中写下面的代码
实现如下代码:在.h页面中

  UISplitViewController *splitViewController; @property (nonatomic, retain) IBOutlet LeftViewController *left; @property (nonatomic, retain) IBOutlet DetailViewController *right; 

在.m页面

  // Do any additional setup after loading the view from its nib. left = [[LeftViewController alloc] initWithStyle:UITableViewStylePlain]; UINavigationController *leftNav = [[UINavigationController alloc] initWithRootViewController:left]; right = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; UINavigationController *rightNav = [[UINavigationController alloc] initWithRootViewController:right]; left.detail = right; splitViewController = [[UISplitViewController alloc] init]; splitViewController.viewControllers = [NSArray arrayWithObjects:leftNav,rightNav, nil]; splitViewController.delegate = right; self.view = splitViewController.view; [left release]; [right release]; 

所有在viewDidLoad中写入的启动方法都不在viewWillAppear中

当你想切换到你的splitview控制器,你需要分配/初始化它,那么你需要设置你的Windows根视图控制器到splitview控制器。

例如在我的应用程序中,我有一个主要的主视图,当用户点击一个button时,我切换到一个分割视图。 要切换到splitview控制器我使用下面的代码。

获取对应用程序委托的引用

 MainAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 

分配和初始化你的splitview控制器,所以对于我的例子,我有一个部分列表控制器在左边,并在右侧部分详细信息控制器:

 SectionListViewController *sectionListVC = [[SectionListViewController alloc] init]; SectionViewController *sectionVC = [[SectionViewController alloc] init]; UISplitViewController *splitVC = [[UISplitViewController alloc] init]; splitVC.viewControllers = [NSArray arrayWithObjects:sectionListVC, sectionVC, nil]; appDelegate.window.rootViewController = splitVC; [sectionListVC release]; [sectionVC release]; [splitVC release]; 

SplitViewController必须是RootViewController。 来自Apple Docs:

“分割视图控制器必须始终是你创build的任何接口的根,换句话说,你必须总是把UISplitViewController对象的视图作为应用程序窗口的根视图安装,然后你的分割视图接口的窗格可以包含导航控制器,标签栏控制器或任何其他types的视图控制器,您需要实现您的界面。

因此,如果不编写自己的容器视图(在iOS5中),而不是使用Apple的SplitViewController,则无法做到自己想要的function。