UISplitViewController:最初显示详细视图

Posted

技术标签:

【中文标题】UISplitViewController:最初显示详细视图【英文标题】:UISplitViewController: Show detail view initially 【发布时间】:2015-09-21 22:44:03 【问题描述】:

我有一个UISplitViewController。主视图显示用于导航的应用程序概览,而详细视图是用户将在 99% 的时间内与之交互的内容。当应用程序在水平紧凑的环境中启动时,它会显示主视图,但我希望它显示详细视图。用户可以根据需要返回到主服务器,但应用程序实际上是功能齐全的。

如何让它在启动时显示详细视图,而不是主视图?

这应该是相当简单的,但我尝试了很多方法,没有一个是特别令人满意的。

试试 1

在我的UISplitViewControllerDelegate

func primaryViewControllerForCollapsingSplitViewController(_ splitViewController: UISplitViewController) -> UIViewController?

    return splitViewController.viewControllers.last

这确实在启动时显示了详细视图,但它缺少将用户带到主视图的导航按钮。显然这是因为细节视图还没有被压入堆栈;相反,它完全取代了主人。我当然可以通过添加我自己的“后退”按钮来捏造它——但这似乎是一种 hack(对吧?)。

试试 2

应用加载并显示主视图后,立即使用

推送详细视图
splitViewController!.showDetailViewController(detailViewController, sender: self)

这可能会起作用,但它也似乎有点 hacky。它本质上是让操作系统最初做错事,然后在用户注意到之前迅速改变它!

那么,有没有更好的办法呢?

【问题讨论】:

【参考方案1】:

添加:

     self.performSegueWithIdentifier("showDetail" , sender:self)

到您的 MasterViewController 的 viewDidLoad 方法。

"showDetail" 是从你的 master 到 detail VC 的 segue 的标识符。

它将 DetailViewController 推送到 NavigationController 堆栈

【讨论】:

谢谢。这就是我所说的尝试 2 的意思——但确实工作得很好。

以上是关于UISplitViewController:最初显示详细视图的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 设置最初选择

UISplitViewController - 双列样式不起作用

UISplitViewController 一致分隔符

UISplitViewController - 并排或纵向叠加

在 UIViewControllers 和 UISplitViewController 之间导航 [关闭]

将 UIToolBar 放在 UISplitViewController 上方?