ios - 在 Swift 中不是初始的主从 View

标签 ios swift appdelegate master-detail

我是 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:

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/

相关文章:

ios - 使 getNotificationSettings 返回而不是使用完成 block

ios - Swift - 从 NavigationController 中的 UIViewController 到 TabBarController 中的 UIViewController

swift - 如何从 ViewController 或其他地方调用或触发 AppDelegate 中的通知函数?

ios - 登录屏幕 - 下一步的按钮

ios - 如何让UITextView的文本内容从顶部开始

ios - 如何在ios导航栏的中心获得两个按钮

ios - Swift 中的小数

ios - 这个字符串对象是快速创建的吗?

objective-c - AppDelegate.m 类中的@interface 错误

ios - 在应用程序启动时获取推送通知详细信息