iOS7和iOS8之间的根视图控制器差异
Posted
技术标签:
【中文标题】iOS7和iOS8之间的根视图控制器差异【英文标题】:Root View Controller discrepancy between iOS7 and iOS8 【发布时间】:2014-12-05 21:24:18 【问题描述】:我的应用在 ios7 上崩溃了,因为由于某种原因 rootViewController
是 UINavigationController
而不是 UISplitViewController
。所以应用程序在AppDelegate
中的let splitViewController = self.window!.rootViewController as UISplitViewController
的第一行崩溃。有没有类似的修复或解决方法?它在 iOS8 上运行良好
【问题讨论】:
您只是好奇地在哪些设备(物理或模拟)上测试此应用? 它出现在7.1.2的iPhone 4S上,我在运行7.1的模拟器上尝试调试它。 【参考方案1】:好的,所以问题是 UISplitViewController 仅用于 iPad,而不是 iPhone。因此,仅当您需要 UISplitViewController 时,请确保您的项目下的目标设置为 iPad。如果您想同时支持这两种设备,我建议您检查一下您的应用程序当前在启动时运行的设备习惯用法,并在两个故事板之间交替(如果这样做,请确保您的目标是通用设备,而不仅仅是 iPad)。
【讨论】:
那为什么它在 iOS8 的 iPad 和 iPhone 上都能正常运行呢? 这是来自 UISplitViewController 类参考的引用。 “在 iOS 8 及更高版本中,您可以在所有 iOS 设备上使用 UISplitViewController 类;在以前的 iOS 版本中,该类仅在 iPad 上可用。”所以我会在执行不同的故事板之前检查 iOS 版本,看看是否有必要切换。 如果在编码时考虑到拆分视图控制器,支持 ios7 是否是一个巨大的解决方法? 不,你只是有不同的视图控制器,它们会调用相同的相似方法。不过,您可能必须使界面有所不同。以上是关于iOS7和iOS8之间的根视图控制器差异的主要内容,如果未能解决你的问题,请参考以下文章
prepareForSegue 在 iOS 7 上无法获取目标视图控制器