xcode - Could not cast value of type 'UINavigationController' (0x10836e698) to 'UITabBarController' (0x10836e6e8).? -


this code uitabbarcontroller in trying open splitviewcontroller.

import uikit  class secondviewcontroller: uiviewcontroller {  override func viewdidload() {  super.viewdidload()  }  override func viewdidappear(animated: bool) {  super.viewdidappear(animated) 

///here after line getting error

var maincont : uitabbarcontroller = ((uiapplication.sharedapplication().delegate) as! appdelegate).window?.rootviewcontroller as! uitabbarcontroller  var navcont2 : uinavigationcontroller? = maincont.viewcontrollers?[1] as? uinavigationcontroller  var controller = uistoryboard(name: "storyboard2", bundle: nil).instantiateinitialviewcontroller() as! uisplitviewcontroller  controller.preferreddisplaymode = uisplitviewcontrollerdisplaymode.allvisible  navcont2?.presentviewcontroller(controller, animated: true, completion: nil)  }   override func didreceivememorywarning() {  super.didreceivememorywarning()  }  } 

your first line:

var maincont : uitabbarcontroller = ((uiapplication.sharedapplication().delegate)      as! appdelegate).window?.rootviewcontroller as! uitabbarcontroller 

is getting window's rootviewcontroller uitabbarcontroller. , error message kind of clear:

could not cast value of type 'uinavigationcontroller' (0x10836e698) 'uitabbarcontroller' (0x10836e6e8). 

on app start window's rootviewcontroller set ever have defined initial view controller on storyboard (the big grey arrow). guess initial view controller set uinavigationcontroller, in code trying cast (force) uitabbarcontroller.


Comments