![](/img/trans.png)
[英]UISplitViewController show detail view on iPhone devices not master
[英]UISplitViewController: Show detail view initially
我有一个UISplitViewController
。 主视图显示了用于导航的应用程序概述,详细视图是用户99%的时间与之交互的视图。 当应用程序在水平紧凑的环境中启动时,它将显示主视图,但我希望它显示详细视图。 用户可以根据需要返回主服务器,但实际上该应用程序可以完全正常运行。
我如何获得它以显示启动时的详细视图,而不是母版?
这应该相当简单,但是我尝试了多种方法,但没有一种方法特别令人满意。
尝试1
在我的UISplitViewControllerDelegate
:
func primaryViewControllerForCollapsingSplitViewController(_ splitViewController: UISplitViewController) -> UIViewController?
{
return splitViewController.viewControllers.last
}
确实确实在启动时显示了详细视图,但是缺少导航按钮,该按钮会将用户带到主视图。 显然,这是因为详细信息视图尚未推送到堆栈中。 相反,它完全取代了母版。 我当然可以通过添加我自己的“后退”按钮来捏造它-但这似乎是一种破解(对吗?)。
试试2
一旦应用程序加载并显示了母版,请立即使用
splitViewController!.showDetailViewController(detailViewController, sender: self)
这可能会起作用,但似乎也有些怪异。 从本质上讲,这是使操作系统最初做错事,然后在用户注意到之前迅速对其进行了更改!
那么,有没有更好的方法?
添加:
self.performSegueWithIdentifier("showDetail" , sender:self)
到MasterViewController的viewDidLoad方法。
“ showDetail”是从主机到详细信息VC的序列中的标识符。
它将DetailViewController推送到NavigationController堆栈
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.