我正在尝试在适用于iOS 14的应用程序中保留iOS 13和UISplitViewController的功能。在横向模式下,一切都按预期方式工作(两个并排视图控制器),但是如果我启动该应用程序(拆分视图控制器是初始视图)控制器)中的状态逻辑,当详细视图控制器中的变量为nil时,我的条件逻辑无法显示主视图控制器,并且主视图和详细视图控制器的导航栏(栏按钮项,大标题)不可见。
func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool {
if (secondaryViewController is UINavigationController) && (((secondaryViewController as? UINavigationController)?.topViewController) is DetailViewController) && (((secondaryViewController as? UINavigationController)?.topViewController as? DetailViewController)?.dict == nil) {
return true
} else {
return false
}
}
奇怪的是,如果我以横向方式启动该应用程序,然后转到肖像,则标题在那里,条在那里,并且一切正常。这似乎是第一次以纵向模式启动时遇到的问题。
解决方案是使用新的委托方法topColumnForCollapsingToProposedTopColumn并根据需要返回.primary或.secondary。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句