UISplitViewController 和 UITabBarController 在通用应用程序的 MasterViewController 中

Posted

技术标签:

【中文标题】UISplitViewController 和 UITabBarController 在通用应用程序的 MasterViewController 中【英文标题】:UISplitViewController with UITabBarController inside the MasterViewController in Universal App 【发布时间】:2015-11-05 21:48:50 【问题描述】:

Picture of my storyboard, i use a login screen first and then the splitview我正在将 TabBarController 嵌入到通用应用程序的 SplitView 中的 MasterView 中,问题是它在 iPad 或 iPhone 6 plus(横向)中使用时完美运行,但在 iPhone 中使用时或者在 iPad 中使用新的多任务处理并将其设置为屏幕的一半,每次我想显示 DetailViewController 时,它都会弹出而不是作为其 NavigationController 中的普通 ViewController 推送。我以为我几个月前就已经解决了,但现在 ios 9 更新又失败了。

我认为这与功能有关:

func splitViewController(splitViewController: UISplitViewController, showDetailViewController vc: UIViewController, sender: AnyObject?) -> Bool

但我不知道如何使用它。

【问题讨论】:

如果您使用故事板,请显示故事板的图像。 【参考方案1】:

我并不是说您的视图结构不正确,只是我不会以这种方式在情节提要中构建它。所以我的建议是你尝试以下作为替代...

如果这样做,请确保复制故事板并在副本中进行更改。这样,如果我建议的更改不起作用,您将能够删除重复的测试情节提要并恢复为原始版本。

这个想法是交换你的主要视图控制器......

我不确定登录视图如何与情节提要的其余部分一起工作,所以我猜它被实例化为“初始视图控制器”?

无论如何...查看您的故事板,您不需要所有视图的拆分视图控制器,只需要您的“主页”和“详细信息”视图。

所以让标签栏控制器成为第一个视图(在“登录”视图之后)。

设置/拖动从选项卡控制器到以下各项的连接:

“高级搜索”的导航控制器; “存储库”的导航控制器; 拆分视图控制器。

从拆分视图控制器中,拖动:

与“主页”导航控制器的主视图连接;和 与“详细信息”导航控制器的详细视图连接。

告诉我你的情况。

【讨论】:

感谢您的回复,但这对我没有帮助。大多数视图都连接到详细信息,而且我不希望应用程序中有一个通用的 tabBar,只需要一个在 master 中。一切正常,但问题是当应用程序进入紧凑模式(iPhone)时,它不会重新分配视图堆栈,因此导航会被破坏。

以上是关于UISplitViewController 和 UITabBarController 在通用应用程序的 MasterViewController 中的主要内容,如果未能解决你的问题,请参考以下文章

iPad 上的 UITraitCollection 和 UISplitViewController

UISplitViewController 一致分隔符

故事板、UIViewController 和 UISplitViewController

UISplitViewController 和单元格取消选择

在 UISplitViewController 和 UIViewControllers 之间导航 [重复]

UISplitViewController 和复杂的视图层次结构