UISplitViewController:最初显示详细视图
UISplitViewController: Show detail view initially
我有一个UISplitViewController
。主视图显示应用程序的概览以供导航,而详细视图是用户将在 99% 的时间与之交互的内容。当应用程序在水平紧凑的环境中启动时,它会显示主视图,但我希望它显示详细视图。用户可以根据需要返回到 master,但实际上该应用程序功能齐全。
如何让它在启动时显示详细视图,而不是主视图?
这应该相当简单,但我尝试了多种方法并且 none 特别令人满意。
尝试 1
在我的 UISplitViewControllerDelegate
:
func primaryViewControllerForCollapsingSplitViewController(_ splitViewController: UISplitViewController) -> UIViewController?
{
return splitViewController.viewControllers.last
}
这确实会在启动时显示详细视图,但它缺少将用户带到主视图的导航按钮。显然那是因为细节视图还没有被压入堆栈;相反,它完全取代了主人。我当然可以通过添加我自己的 'back' 按钮来捏造它 - 但这似乎是一个 hack(对吧?)。
尝试 2
应用程序加载并显示母版后,立即使用
推送详细视图
splitViewController!.showDetailViewController(detailViewController, sender: self)
这可能会奏效,但似乎也有点老套。它本质上是让 OS 最初做错事,然后在用户注意到之前快速更改它!
那么,有没有更好的方法呢?
添加:
self.performSegueWithIdentifier("showDetail" , sender:self)
到 MasterViewController 的 viewDidLoad 方法。
"showDetail" 是从你的 master 到 detail 的 segue 的标识符 VC。
它将 DetailViewController 推送到 NavigationController 堆栈
我有一个UISplitViewController
。主视图显示应用程序的概览以供导航,而详细视图是用户将在 99% 的时间与之交互的内容。当应用程序在水平紧凑的环境中启动时,它会显示主视图,但我希望它显示详细视图。用户可以根据需要返回到 master,但实际上该应用程序功能齐全。
如何让它在启动时显示详细视图,而不是主视图?
这应该相当简单,但我尝试了多种方法并且 none 特别令人满意。
尝试 1
在我的 UISplitViewControllerDelegate
:
func primaryViewControllerForCollapsingSplitViewController(_ splitViewController: UISplitViewController) -> UIViewController?
{
return splitViewController.viewControllers.last
}
这确实会在启动时显示详细视图,但它缺少将用户带到主视图的导航按钮。显然那是因为细节视图还没有被压入堆栈;相反,它完全取代了主人。我当然可以通过添加我自己的 'back' 按钮来捏造它 - 但这似乎是一个 hack(对吧?)。
尝试 2
应用程序加载并显示母版后,立即使用
推送详细视图splitViewController!.showDetailViewController(detailViewController, sender: self)
这可能会奏效,但似乎也有点老套。它本质上是让 OS 最初做错事,然后在用户注意到之前快速更改它!
那么,有没有更好的方法呢?
添加:
self.performSegueWithIdentifier("showDetail" , sender:self)
到 MasterViewController 的 viewDidLoad 方法。
"showDetail" 是从你的 master 到 detail 的 segue 的标识符 VC。
它将 DetailViewController 推送到 NavigationController 堆栈