我正在使用XCode 6.1尝试使用自定义菜单来实现视图控制器的容器化... 我在我的主视图控制器中使用以下函数来呈现子视图控制器:
var currentController: UIViewController?
// Function within main view controller class
func presentController(controller: UIViewController) {
if currentController != controller {
if currentController != nil {
currentController!.willMoveToParentViewController(nil)
currentController!.view.removeFromSuperview()
currentController!.removeFromParentViewController()
}
controller.willMoveToParentViewController(self)
self.addChildViewController(controller)
self.view.addSubview(controller.view)
controller.didMoveToParentViewController(self)
currentController = controller
}
}
应用初始运行时,我在 viewDidAppear
中使用 self.presentController(firstViewController)
,这个方法可行。
不过,在我的自定义菜单(使用 REMenu)中,我尝试像这样显示所选视图控制器: MainViewController().presentController(secondViewController)
。当这个方法运行时,当前控制器会被移除(显示主视图控制器的视图,只是一个黑色背景),但新的控制器并没有被加载进来。
有没有人能指导我正确的方向?
let applicationController = MainApplicationController()
,然后我就能够使用applicationController.presentController(viewController)
来更改当前控制器了。太棒了。谢谢! - Jody Heavener