它可以是非rootviewcontroller吗?

Can it be non rootviewcontroller?

我正在应用程序中实施抽屉式布局设计。 但是我的应用程序从一个带有动画徽标(简单 HTML5 动画)的小屏幕开始,然后是登录屏幕(g+ 和 Facebook),然后是我实现 MMDrawerController 的主屏幕。

问题在我AppDelegate:

 window?.rootViewController = centerContainer
 window?.makeKeyAndVisible()

所以应用程序在这个屏幕上启动。是否可以不让 rootviewcontroller 成为中心容器并仍然使用 MMDrawerController?

我需要将 MMDrawerController 添加到我的应用中的第三个 viewcontroller 但是,为了让 MMDrawerController 工作,它需要成为 rootViewController

我已经尝试向我的第一个 ViewController 添加一个 Empty MMDrawerLayout 但是,第三个控制器不再工作

 //global var 
 var centerContainer : MMDrawerController?
 // then the appdelegate 
 let rootViewController = self.window!.rootViewController
 let mainStoryBoard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
 let centerViewController = mainStoryBoard.instantiateViewControllerWithIdentifier("GaleriaPeliculas")

 let leftViewController = mainStoryBoard.instantiateViewControllerWithIdentifier("LeftSideViewController")

 let leftSideNav = UINavigationController(rootViewController: leftViewController)
 let centerSideNav = UINavigationController(rootViewController: centerViewController)

 //And here is the problem, 
 window?.rootViewController = centerContainer //how can it work without this line??
 window?.makeKeyAndVisible()

Is it possible to not make rootviewcontroller the center container and still using MMDrawerController?

没有。如果您仍想使用 left/right 抽屉,则需要将 MMDrawerController 保留为 rootViewController。它与 UITabBarController 没有什么不同,因为它包含多个要有条件地显示的视图控制器。