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
Post a Comment