ios - Programmatically add tab to tab bar -
i have app uitabbarcontroller
initial view controller.
currently i'm doing in storyboard want programmatically add tab tab bar based on user being logged in or not.
i made testviewcontroller
test out. right have 2 tabs (pictured below). want have third tab positioned on right programmatically. put code in appdelegate's didfinishlaunching
method. based on print statements view controller being added tab bar not appearing in tab bar app loads.
any suggestions?
func addtabtest() { let storyboard = uistoryboard(name: "main", bundle: nil) let tabcontroller = storyboard.instantiateviewcontrollerwithidentifier("roottabcontroller") as! uitabbarcontroller let testvc = storyboard.instantiateviewcontrollerwithidentifier("testviewcontroller") as! testviewcontroller let icon = uitabbaritem(title: "test", image: nil, selectedimage: nil) testvc.tabbaritem = icon print("tab controllers 1: \(tabcontroller.viewcontrollers)") tabcontroller.addchildviewcontroller(testvc) tabcontroller.viewcontrollers![2] = testvc print("tab controllers 2: \(tabcontroller.viewcontrollers)") }
self.window = uiwindow(frame: uiscreen.mainscreen().bounds) let nav1 = uinavigationcontroller() let mainstoryboard: uistoryboard = uistoryboard(name: "main", bundle: nil) let first: viewcontroller = mainstoryboard.instantiateviewcontrollerwithidentifier("viewcontroller") as! viewcontroller nav1.viewcontrollers = [first] nav1.setnavigationbarhidden(true, animated: true) nav1.title = "first" let nav2 = uinavigationcontroller() let second: secondviewcontroller = mainstoryboard.instantiateviewcontrollerwithidentifier("secondviewcontroller") as! secondviewcontroller nav2.viewcontrollers = [second] nav2.setnavigationbarhidden(true, animated: true) nav2.title = "second" let nav3 = uinavigationcontroller() let third: thirdviewcontroller = mainstoryboard.instantiateviewcontrollerwithidentifier("thirdviewcontroller") as! thirdviewcontroller nav3.viewcontrollers = [third] nav3.setnavigationbarhidden(true, animated: true) nav3.title = "third" let tabcontroller = uitabbarcontroller() tabcontroller.viewcontrollers = [nav1,nav2,nav3] tabcontroller.selectedindex = 0 self.window!.rootviewcontroller = tabcontroller self.window?.makekeyandvisible()
Comments
Post a Comment