2016-08-23 3 views
1

초기보기 컨트롤러로 UITabBarController 인 앱이 있습니다.프로그래밍 방식으로 탭 표시 줄에 탭 추가

현재 Storyboard에서 모든 작업을 수행하고 있지만 프로그래밍 방식으로 로그인하는 사용자에 따라 탭을 탭에 추가하려고합니다.

나는 이것을 시험하기 위해 TestViewController으로 만들었습니다. 지금은 두 개의 탭이 있습니다 (아래 그림 참조). 세 번째 탭을 프로그래밍 방식으로 오른쪽에 배치하고 싶습니다. 이 코드를 AppDelegate의 didFinishLaunching 메소드에 넣습니다. 인쇄 명령문에 따라보기 컨트롤러가 탭 표시 줄에 추가되고 있지만 탭 표시 줄에 나타나지 않으면 앱이로드됩니다.

제안 사항?

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)") 

} 

enter image description here

enter image description here

답변

2
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() 
0

이 빠른 4

self.window = UIWindow(frame: UIScreen.main.bounds) let nav1 = UINavigationController() let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

let first = mainStoryboard.instantiateViewController(withIdentifier: "HomeViewController") as! HomeViewController 
    nav1.viewControllers = [first] 
    nav1.setNavigationBarHidden(true, animated: true) 
    nav1.title = "first" 

    let nav2 = UINavigationController() 
    let second: HomeViewController = mainStoryboard.instantiateViewController(withIdentifier: "HomeViewController2") as! HomeViewController2 
    nav2.viewControllers = [second] 
    nav2.setNavigationBarHidden(true, animated: true) 
    nav2.title = "second" 

    let nav3 = UINavigationController() 
    let third = mainStoryboard.instantiateViewController(withIdentifier: "HomeViewController3") as! HomeViewController3 
    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() 
위한
관련 문제