Swift3 不建议在分离的视图控制器上显示视图控制器(使用SWRevealViewController)

Swift3 不建议在分离的视图控制器上显示视图控制器(使用SWRevealViewController),swift3,swrevealviewcontroller,side-menu,Swift3,Swrevealviewcontroller,Side Menu,我正在更改SwRevealViewController的RootViewController 我的代码: let next = self.storyboard?.instantiateViewController(withIdentifier: "SWRevealViewController") as! SWRevealViewController next.loadView() let mainStoryboard: UIStoryboard = UIStoryboard(na

我正在更改SwRevealViewController的RootViewController

我的代码:

let next = self.storyboard?.instantiateViewController(withIdentifier: "SWRevealViewController") as! SWRevealViewController
    next.loadView()
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let viewController = mainStoryboard.instantiateViewController(withIdentifier: "MessageViewController") as! MessageViewController
    UIApplication.shared.keyWindow?.rootViewController = viewController;

    self.present(next, animated: true, completion: nil)
但我得到了这个错误:

>Presenting view controllers on detached view controllers is discouraged <ios.MesajDetayViewController: 0x7f8718d646f0>.
>不建议在分离的视图控制器上显示视图控制器。

如何解决?

如果要更改
SWRevealViewContoller
前视图控制器,应使用

let newFronViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "YourID") as! YourClass
self.revealViewController().setFront(newFronViewController, animated: false)
我可以更新我的答案,这取决于你想在哪里打电话

解决方案

    let sw = storyboard?.instantiateViewController(withIdentifier: "SWRevealViewController") as! SWRevealViewController
self.view.window?.rootViewController = sw

let mainStroyBoard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let desController = mainStroyBoard.instantiateViewController(withIdentifier: "MessageViewController") as! MessageViewController
let newFrontViewController = UINavigationController.init(rootViewController:desController)
sw.pushFrontViewController(newFrontViewController, animated: true)