适用于iOS 7应用程序的XCode 6中的UISplitViewController

Kay*_*sch 8 uisplitviewcontroller ios7 swift xcode6

我正在使用Xcode 6和Swift在UISplitViewController上使用仅限iPad的应用程序.该应用程序应支持iOS 7.1及更高版本.我将项目的部署目标设置为iOS 7.1,并将SDK版本保持在8.0以支持Swift.我有一个使用Xcode 6 beta 6的工作版本,但在将Xcode升级到黄金主版本后,该应用程序不再适用于iOS 7.1(模拟器和设备).

即使是由Xcode GM提供的主详细信息模板创建的空白应用程序也无法在iOS 7.1上运行.我已经在生成的空白应用程序的AppDelegate中禁用了displayModeButtonItem,因为这在iOS 7上不受支持,但应用程序在didFinishLaunchingWithOption委托方法的第一行崩溃.

代码

func application(application: UIApllication, didFinishLaunchingWithOptions: [NSObject: AnyObject]?) -> Bool {
    let splitViewController = self.windows!.rootViewController as UISplitViewController
    let navigationController = splitViewController.viewControllers[splitViewContoller.viewControllers.count-1] as UINavigationController
    splitViewController.delegate = self
}
Run Code Online (Sandbox Code Playgroud)

导致第一行中出现错误的访问异常.

甚至可以使用Xcode 6为iOS 7编写拆分视图应用程序吗?iOS SDK 7和8之间UISplitViewController的差异很大.查看Apples SDK文档中的类引用,它看起来像是对UISplitViewController的完全重写.

编辑: 我刚刚意识到在Xcode 6 GM或Xcode 6.0.1中打开我的应用程序的故事板后,XML中的一些版本信息发生了变化.如果我还原这些更改并重新编译我的应用程序而不打开Xcode 6 GM或6.0.1中的故事板,则该应用程序在iOS 7.1中运行良好.

编辑(2014年10月21日): XCode 6.1中仍然存在问题.

Bri*_*oom 5

我被困在一个类似的问题上.关闭大小类为我修复了它.

在故事板中,在右窗格中,单击"显示文件检查器"(纸质图标),然后取消选中自动布局设置下的"使用大小类".

  • 禁用大小类也适用于我.感谢分享.我还验证了@ brian-broom的发现.编译器中的故事板和大小类似乎有些麻烦. (2认同)