1

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

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

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

 - (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]; 

}

4

1 回答 1

0

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

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

于 2011-05-26T13:53:30.010 回答