2016-05-28 30 views
1

我使用CosmicMaterial(http://www.cosmicmind.io/material)实现Sidemenu或a.k.a抽屉菜单。我已阅读文档以及如何运行这个很酷的库的示例项目。我能够看到CosmicMaterial的Sidemenu演示。嵌入导航控制器使用Sidemenu CosmicMaterial

虽然有一个问题,我很难搞清楚如何在Sidemenu中嵌入导航控制器。

我在的appdelegate didFinishLaunchingWithOptions代码

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都已设置。

enter image description here

回答

1

我以前有同样的问题。我刚才发现我正在分配navigonController不当。请参阅以下代码:

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的属性。取消隐藏状态栏,否则在显示侧面菜单时会遇到烦人的错误。

干杯!

+1

我为这个问题写了3个小时的这篇文章:) http://www.prettyitgirl.com/2016/05/implementing-sidenavigationcontroller.html – Glenn

相关问题