UISplitViewController 在所有情况下都不是 "dismissing" 主视图控制器
UISplitViewController not "dismissing" master view controller in all situations
我有一个应用程序使用 UISplitViewController
作为其 window 的根视图控制器。该应用程序在制作时使用了 Master-Detail Xcode 模板。 master VC 是一个 UITableViewController
,当它的其中一个单元格被按下时,它会使用
“隐藏”自己
self.splitViewController?.hide(.primary)
我们已将 VC 更新为 iOS 14 中引入的双列样式拆分视图控制器。大多数时候该方法确实隐藏主列;但是,有两种情况我们的主视图控制器无法通过此动画解除:
- iPhone
上的纵向模式
- 在iPhone横向模式下使用
Zoomed
“显示缩放”
iPad 我们没有遇到任何问题。 hide(:_)
方法的文档显示为
When you call this method, the split view interface transitions to the closest display mode available for the current split behavior where the specified column is hidden.
但很明显,在某些情况下,使用此方法不会隐藏主列。我四处寻找关于隐藏主视图控制器的解决方案,但大多数都缺乏相关性,因为它们已有很多年历史(有时 10 岁以上)and/or 不适用于 Swift 或 iOS 14使用新的拆分视图控制器样式。
为什么列不总是隐藏?和如何确保主视图控制器消失?
我们的最终目标是首先展示辅助控制器...所以为什么不呢
self.splitViewController?.show(.secondary)
很有魅力
我有一个应用程序使用 UISplitViewController
作为其 window 的根视图控制器。该应用程序在制作时使用了 Master-Detail Xcode 模板。 master VC 是一个 UITableViewController
,当它的其中一个单元格被按下时,它会使用
self.splitViewController?.hide(.primary)
我们已将 VC 更新为 iOS 14 中引入的双列样式拆分视图控制器。大多数时候该方法确实隐藏主列;但是,有两种情况我们的主视图控制器无法通过此动画解除:
- iPhone 上的纵向模式
- 在iPhone横向模式下使用
Zoomed
“显示缩放”
iPad 我们没有遇到任何问题。 hide(:_)
方法的文档显示为
When you call this method, the split view interface transitions to the closest display mode available for the current split behavior where the specified column is hidden.
但很明显,在某些情况下,使用此方法不会隐藏主列。我四处寻找关于隐藏主视图控制器的解决方案,但大多数都缺乏相关性,因为它们已有很多年历史(有时 10 岁以上)and/or 不适用于 Swift 或 iOS 14使用新的拆分视图控制器样式。
为什么列不总是隐藏?和如何确保主视图控制器消失?
我们的最终目标是首先展示辅助控制器...所以为什么不呢
self.splitViewController?.show(.secondary)
很有魅力