Swift 在使用侧菜单材料时嵌入NavigationController

Swift 在使用侧菜单材料时嵌入NavigationController,swift,xcode,cosmicmind,Swift,Xcode,Cosmicmind,我正在使用CosmicMaterial()实现侧菜单或抽屉菜单。我已经阅读了文档以及如何运行这个很酷的库的示例项目。我看到了宇宙材料副菜单的演示 但有一个问题是,我很难弄清楚如何在侧菜单中嵌入导航控制器 我在Appdelegate中的代码未使用选项完成启动 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -&g

我正在使用CosmicMaterial()实现侧菜单或抽屉菜单。我已经阅读了文档以及如何运行这个很酷的库的示例项目。我看到了宇宙材料副菜单的演示

但有一个问题是,我很难弄清楚如何在侧菜单中嵌入导航控制器

我在Appdelegate中的代码未使用选项完成启动

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        // Get view controllers from storyboard
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let homeTableViewController = storyboard.instantiateViewControllerWithIdentifier("HomeTableViewController") as! HomeTableViewController
        let sideViewController = storyboard.instantiateViewControllerWithIdentifier("SideTableViewController") as! SideTableViewController

//        var navigationController = storyboard.instantiateViewControllerWithIdentifier("RootNavigationController") as! NavigationController
//        
//        var sideNavigationController = storyboard.instantiateViewControllerWithIdentifier("SideNavigationController") as! NavigationController
//        
//        navigationController = NavigationController(rootViewController: homeTableViewController)
//        sideNavigationController = NavigationController(rootViewController: sideViewController)
//        
//        
        // Configure the window with the SideNavigationController as the root view controller
        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        window?.rootViewController = SideNavigationController(rootViewController: homeTableViewController, leftViewController: sideViewController)
        window?.makeKeyAndVisible()

        return true
    }
这是我在故事板中的布局。已设置每个XIB的所有ID


我以前也有同样的问题。我刚刚发现我不正确地分配了Navigon控制器。请参见以下代码:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Get view controllers from storyboard
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let rootViewController = storyboard.instantiateViewControllerWithIdentifier("RootViewController") as! RootViewController
    let sideViewController = storyboard.instantiateViewControllerWithIdentifier("SideViewController") as! SideViewController

    let navCon2 = NavigationController(rootViewController: sideViewController)
    let navCon = NavigationController(rootViewController: rootViewController)

    let sideNavigationController = SideNavigationController(rootViewController: navCon, leftViewController: navCon2)
    sideNavigationController.enabledLeftTapGesture = true
    sideNavigationController.enabledLeftPanGesture = true
    sideNavigationController.enableHideStatusbar = false

    // Configure the window with the SideNavigationController as the root view controller
    window = UIWindow(frame: UIScreen.mainScreen().bounds)
    window?.rootViewController = sideNavigationController
    window?.makeKeyAndVisible()
    return true
}
请注意,您必须正确设置SideNavigationController的属性。取消隐藏状态栏,否则在显示侧菜单时会遇到恼人的错误


干杯

我写这篇文章花了3个小时就是为了这个问题:)