假设我想设计一个主细节应用程序,Xcode6主细节项目模板的通用应用程序包括UISplitViewController和splitViewController是新的iOS8。我也想支持iOS7的应用程序。
总体而言
发布于 2014-11-14 19:45:20
创建这样一个应用程序的“最佳方式”很可能取决于你的应用程序到底需要做什么。根据需要的任何特殊行为,某些方法会比其他方法更好。
但是在Xcode 6中使用一个通用故事板是绝对可能的,它使用的是Size类,并且仍然以iOS 7为目标,包括iPhone和iPad,使用UISplitViewController。我成功地做到了这一点。要确保iOS 7和8的正常工作,需要做大量的工作。在执行各种新的自适应segues时,您必须稍微小心一点,因为这是iOS 7和8之间的一个巨大差异。例如,当您有一个弹出器时,需要为两个不同的OSes做一些工作,处理松开的海角需要一些特殊的处理,这将需要进行大量的测试。致力于测试iPhone 6加法-在景观它将显示主屏幕和细节,但你可以控制这一点。
在经历了这段经历之后,我宁愿实现一个单一的故事板,而不是两个故事板,每个操作系统都有一个故事板,并且绝对不要为每个操作系统创建一个故事板,然后为每种设备类型创建一个故事板。
您将需要阅读SDK兼容性指南以了解如何检测API可用性。如果您在iOS 7上实现了一个不存在的API,应用程序就会崩溃,所以只有当该函数存在于运行该应用程序的操作系统时,您才需要运行该代码。例如,您可能希望使用新的UIBlurEffect API,但iOS 7中不存在这种情况。了解弃用意味着什么,了解iOS 8中的变化将有很大帮助。例如,拒绝使用旋转API来支持Size Class特性集合,但是这些特性集合在iOS 7中是不可用的,因此您需要继续使用不推荐的旋转API。
也可以看看今年的一些WWDC视频。他们有几个视频来讨论新的自适应语言和通用故事板。请注意,这些故事板与iOS 7向后兼容,但是iOS 7没有提供一些大小类。请参阅这个问题和我提供的答案以获得更多信息。前几年的WWDC视频也讨论了如何支持多个OSes,渐进增强等。
当然,当您有问题/问题时,堆栈溢出是一个很好的资源。我在过去几个月里发布的很多问题都与这个主题有关,比如如何修改UISplitViewController行为,如何获得对OSes的支持,使用单一的故事板和新的自适应设置等等。您可能希望阅读这些内容,以了解在以同样的方式开发应用程序时会遇到什么。
https://stackoverflow.com/questions/26293829
复制相似问题