我是 Swift 的新手。
我想构建一个主从 View ,它不是应用程序的初始 View 。当我在主从 View 之前设置其他 View 时,Xcode 使用主从应用程序生成的 AppDelegate.swift 就崩溃了。
这是 AppDelegate.swift 的代码:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
let splitViewController = self.window!.rootViewController as! UISplitViewController
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem()
splitViewController.delegate = self
let masterNavigationController = splitViewController.viewControllers[0] as! UINavigationController
let controller = masterNavigationController.topViewController as! MasterViewController
controller.managedObjectContext = self.managedObjectContext
return true
}
我得到了以下错误:
Could not cast value of type 'UIViewController' (0x11079e418) to 'UISplitViewController' (0x1107a8eb8).
(lldb)
还有我的 Main.storyboard:
感谢您的帮助!
最佳答案
你的初始 View Controller 是一个 UIViewController
但在 application(application:, didFinishLaunchingWithOptions:)
的开头你仍然表现得好像屏幕上的第一个 View 是一个 UISplitViewController
(参见 let splitViewController = self.window!.rootViewController as!UISplitViewController
)。
为了让不同的 View 成为初始 View Controller ,您需要适本地更新该代码以首先处理不同的 View Controller 。
关于ios - 在 Swift 中不是初始的主从 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30997600/