我们有一个带有 Split View Controller 的通用应用程序,这些 Controller 嵌入在不同的选项卡中。我们在 iPhone 上的 iOS 13 上观察到,在切换选项卡时,偶尔会显示详细 View 而不是主视图。我们无法挑选出这种模式,这只是随机发生,但经常发生。
我已经提到了UISplitViewController in portrait on iPhone shows detail VC instead of master和
Open UISplitViewController to Master View rather than Detail我们正在为 SplitViewController 实现委托(delegate)。该委托(delegate)也被调用。
class AppSplitViewController: UISplitViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.delegate = self
self.preferredDisplayMode = .allVisible
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destination.
// Pass the selected object to the new view controller.
}
*/
}
// MARK: - UISplitViewControllerDelegate Methods
extension AppSplitViewController: UISplitViewControllerDelegate {
func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool {
return true
}
}
我不确定其他人是否在 iOS 13 上也观察到了这一点,但我不确定即使我们有适当的委托(delegate)实现,为什么 iOS 会偶尔显示详细 View 。请注意,我们无法在 iOS 12 上重现这一点。这是 View 堆栈
https://imgur.com/eWO3RQM
最佳答案
设置UISplitViewController
delegate
再次在 awakeFromNib
.从 iOS 13 到至少 13.3 似乎存在一些操作顺序问题。我遇到了完全相同的问题,并且由于 another answer 而实现了这个提示,这似乎工作。
关于swift - Split View Controller 偶尔会在 iOS 13 上的 iPhone 上显示详细 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58812344/