假设我想设计一个主细节应用程序,通用应用程序的Xcode6主 - 详细项目模板包括UISplitViewController和splitViewController是iOS8中的新功能。我也想支持iOS7的应用程序。
一般
答案 0 :(得分:4)
创建此类应用的“最佳方式”可能取决于您的应用需要做什么。根据所需的任何特殊行为,某些方法会比其他方式更好。
但是在Xcode 6中使用单个通用故事板绝对可以使用大小类,并且仍然使用UISplitViewController
定位iOS 7,包括iPhone和iPad。我已经成功地做到了这一点。它确实需要做很多工作才能确保它在iOS 7和8上运行正常并且看起来一致。在执行各种新的自适应segue时你必须要小心,因为这是iOS 7和8之间的巨大差异例如,检测何时有弹出窗口需要为两个不同的操作系统做一些工作,处理展开segue需要一些特殊的处理等。这将需要大量的测试。专注于测试iPhone 6 Plus的时间 - 在横向上,它将在屏幕上显示主控和细节,但您可以控制它。
在完成这些经验之后,我会多而不是实现一个故事板而不是两个故事板,每个操作系统一个,并且绝对不会为每个操作系统创建故事板,然后一个每种设备类型。
您需要阅读SDK Compatibility Guide以了解如何检测API可用性。如果您实现了iOS 7上不存在的API,则应用程序将崩溃,因此如果该应用程序运行的操作系统存在该功能,则只需运行该代码。例如,您可能希望使用新的UIBlurEffect
API,但在iOS 7中不存在。了解弃用意味着什么,并了解iOS 8中的更改将极大地帮助您。例如,不推荐使用旋转API以支持Size Class特征集合,但这些在iOS 7上不可用,因此您需要继续使用已弃用的旋转API。
同时查看今年的WWDC videos部分内容。他们有几个视频讨论新的自适应segue和通用故事板。请注意,这些故事板向后兼容iOS 7,但有些大小类在iOS 7上不可用。请参阅this question以及我提供的答案以获取更多信息。前几年的WWDC视频还讨论了如何支持多个操作系统,渐进增强等等。
当然,当您遇到问题/问题时,Stack Overflow是一个很好的资源。我在过去几个月发布的很多问题与这个主题完全相关,如何修改UISplitViewController
行为,获得对两种操作系统的支持,使用单个故事板和新的自适应segue等等。我们可能希望通读这些内容,以便了解在以相同方式开发应用时可能遇到的问题。