上分离视图控制器呈现视图控制器是不鼓励(与SWRevealViewController)

问题描述:

我改变SwRevealViewController上分离视图控制器呈现视图控制器是不鼓励(与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>. 

怎么解决?

solution

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) 

,如果你想改变SWRevealViewContoller前视图控制器,你应该使用

let newFronViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "YourID") as! YourClass 
self.revealViewController().setFront(newFronViewController, animated: false) 

我可以根据更新我的答案,你想叫这个。

+0

谢谢你的回答,但我解决了这个错误 – Tiskender2