我使用基于视图的应用程序启动了我的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.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return YES;
}
我在哪里实现代码? 提前致谢。
答案 0 :(得分:2)
如果要切换到splitview控制器,则需要分配/初始化它,然后需要将windows根视图控制器设置为splitview控制器。
例如,在我的应用程序中,我有一个主视图,当用户点击按钮时,我切换到了分割视图。要切换到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];
答案 1 :(得分:1)
据我所知,拆分视图控制器你必须创建新的基于分割视图的应用程序,或者你必须通过编程实现。为此你需要创建一个主视图控制器,它包含splitview和一个没有nib文件的表视图控制器,并包含表视图控制器添加一个显示详细信息的视图控制器
在主控制器中写下以下代码
实现代码如:
在.h页面
UISplitViewController *splitViewController;
@property (nonatomic, retain) IBOutlet LeftViewController *left;
@property (nonatomic, retain) IBOutlet DetailViewController *right;
<。p>在.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
中答案 2 :(得分:1)
SplitViewController必须是RootViewController。来自Apple Docs:
“拆分视图控制器必须始终是您创建的任何接口的根。换句话说,您必须始终从aUISplitViewController对象安装视图作为应用程序窗口的根视图。拆分视图界面的窗格可能然后包含导航控制器,标签栏控制器或实现界面所需的任何其他类型的视图控制器。“
因此,如果不编写自己的容器视图(在iOS5中)而不是使用Apple的SplitViewController,则无法执行您想要的操作。