0

我想通过使用拆分视图控制器使我的应用程序适应 iPhone 6+。目前,我的应用程序是一个简单的表格视图,列出了我的文章和一个详细信息视图。

我希望我的应用在 iPhone 6 Plus 的横向模式下切换到拆分视图,但我不知道如何正确实现。

我创建了一个新的故事板并集成了一个拆分视图控制器,之后我就卡住了。当我点击主视图(这是一个表格视图)上的一个单元格时,我不知道如何将我的新闻推送到详细视图控制器。我尝试在 didSelectRowAtIndexPath 方法中添加它:

[self.navigationController pushViewController:viewController animated:YES];

但是当我这样做时,详细视图被推入拆分视图(主视图)的左侧部分。

我还尝试在 Table View Controller 单元格和 Detail View Controller 之间添加“显示详细信息”segue,并添加 didSelectRowAtIndexPath 方法:

[self performSegueWithIdentifier:@"showDetails" sender:self];

但同样的问题,视图被推送到主视图中。

其他问题,在纵向模式下,默认视图是详细视图。如何显示主视图?

在此先感谢您的帮助 !

4

2 回答 2

0

在您的主视图控制器中,您应该能够使用self.splitViewController. SplitViewController 有一个属性 viewControlers,它是一个包含两个元素的数组:第一个是主视图控制器,第二个是细节端视图控制器。在每种情况下,层次结构中的顶级控制器通常是导航控制器。因此,从您的主控制器(tableView)代码中,您可以使用以下内容访问 detailController:

UINavigationController *detailNav = self.splitViewController.viewController[1];
[detailNav pushViewController:viewController animated:YES];

在实践中,您可能应该使用比推送更复杂的东西,以避免在您单击主视图中的不同单元格时严重堆积堆栈。但这应该让你继续前进。此外,使用 Apple 的模板创建一个测试主/详细信息应用程序并分析它们的工作方式。这有一些代码用于在弹出控制器中显示主视图控制器,这就是它在纵向模式下的呈现方式。

于 2014-10-04T08:34:17.713 回答
0

有几个博客用示例代码讨论了 iOS 8 上的拆分视图行为:

目标 C

迅速

非常清晰和有用:)

于 2015-05-07T10:44:38.087 回答