SplitViewController 在启动时总是显示 DetailViewController

Posted

技术标签:

【中文标题】SplitViewController 在启动时总是显示 DetailViewController【英文标题】:SplitViewController always shows DetailViewController on startup 【发布时间】:2021-03-19 18:46:20 【问题描述】:

我在 Storyboard 上有一个 splitViewController 设置。它在 MasterViewController() 上设置为 Master,在 DetailViewController() 上设置为 DetailController。每当应用程序启动时,我总是会在全屏显示 DetailViewController 并带有一个导航栏,我必须在 MasterView 出现之前弹出该导航栏。我设置了 self.preferredDisplayMode = .oneBesideSecondary 我已经在网上搜索了答案,但无法得到。非常感谢任何建议。

【问题讨论】:

有几个问题需要澄清。 (我不使用情节提要,但我使用的是UISplitViewController。(1)你的根视图控制器是这个拆分视图吗?(2)你的目标是什么 ios/iPadOS?(3)如果设备是 iPad,它可以工作吗?不同?(4)你说的是什么尺寸等级,常规的还是紧凑的?Apple 在过去两个年度周期中确实在拆分视图控制器上工作,我正试图看到你的问题。另外,你 - 至少在 14 .x - 不要“弹出”任何东西。您可以显示/隐藏。(导航栏仅存在于“次要”VC 中。) @dfd 感谢您的回复。作为“基础”,我有一个 tabbarcontroller,在第一个选项卡上我有一个 splitviewcontroller。目标是 iOS 14。辅助 VC 始终首先显示,当我按下后退按钮时,主 VC 以全屏显示,而不是 .oneBesideSecondary 根据您的评论跟进问题。拆分 VC 是否“嵌入”在选项卡 VC 中?我想我没看错。如果它是 根 VC,它的行为如何?我只是想消除一些东西。 @dfd 它没有嵌入到 VC 中。我没有将它作为 rootVC 尝试,因为我使用我的 tabBarVC 作为 root 我使用“嵌入式”这个词可能是错误的。我试图做的是查看UISplitViewController 的行为在(a)它是根 VC 和/或(b)涉及标签栏时是否不同。我只使用它 - 拆分视图 - 作为根 VC 并像你一样以 iOS 14 为目标 - 只有当它显示紧凑的 VC 时,我才使用标签栏。由于 VC 层次结构与您的层次结构非常不同,我希望消除一些东西。 【参考方案1】:

来自 https://developer.apple.com/forums/thread/656369

如果我将拆分视图控制器嵌入到容器视图控制器中, 然后问题解决了。这是我最有效的解决方案 没找到。

【讨论】:

以上是关于SplitViewController 在启动时总是显示 DetailViewController的主要内容,如果未能解决你的问题,请参考以下文章

旋转 SplitViewController 会弄乱主视图中的工具栏

SplitViewController无法正常工作(Swift)

带有 TabbarController 的 SplitViewController

电脑启动时总出现管理员,密码,怎么取消

SplitViewController - 可以更改 rootview 和 detailview 的 z 顺序吗?

MySQL安装问题:在最后一步“Apply security settings ”时总出现error 1364错误,说TCP端口3306被占用