除了使用popover并选择之外,我们如何在UISplitViewController中更改视图?

时间:2010-04-10 12:37:23

标签: ipad uisplitviewcontroller

我已经使用UISplitViewController研究了他们提供的示例。我创建了三个详细视图,并将它们配置为通过默认方式更改。在横向中使用左/主视图并在纵向中使用弹出框。

现在我尝试通过在每个视图中使用向左/向右滑动从currentView移动到另一个视图(上一个/下一个)。为此,我所做的只是在RootViewController中创建了一个函数。我从RootViewController复制粘贴了与poprow使用的tablerow选择相同的代码。我从当前视图的控制器调用此函数,并从当前视图传递视图的相应索引(下一步显示)。正在调用函数但没有任何事情发生。

Plz帮助我或者除了这个复杂的步骤之外还有其他方法吗?我正在提供用于更改视图的功能。

 - (void) rearrangeViews:(int)viewRow
{
UIViewController <SubstitutableDetailViewController> *detailViewController = nil;

if (viewRow == 0) {
    DetailViewController *newDetailViewController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
    detailViewController = newDetailViewController;
}

if (viewRow == 1) {
    SecondDetailViewController *newDetailViewController = [[SecondDetailViewController alloc] initWithNibName:@"SecondDetailView" bundle:nil];
    detailViewController = newDetailViewController;
}

if (viewRow == 2) {
    ThirdDetailViewController *newDetailViewController = [[ThirdDetailViewController alloc] initWithNibName:@"ThirdDetailView" bundle:nil];
    detailViewController = newDetailViewController;
}

// Update the split view controller's view controllers array.
NSArray *viewControllers = [[NSArray alloc] initWithObjects:self.navigationController, detailViewController, nil];
splitViewController.viewControllers = viewControllers;
[viewControllers release];

if (rootPopoverButtonItem != nil) {
    [detailViewController showRootPopoverButtonItem:self.rootPopoverButtonItem];
}

[detailViewController release]; 

}

1 个答案:

答案 0 :(得分:0)

我用Google搜索并找到了一个很好的方法。他们在详细视图上使用UINavigationController来推送新视图。您可以为项目使用相同的解决方案。

http://www.cimgf.com/2010/05/24/fixing-the-uisplitviewcontroller-template/