2015-06-20 5 views
0

У меня есть файл раскадровки с UITabBarController, связанный с 4-мя диспетчерами, и я хочу добавить номер 5 программно. В Objective-C Я сделал так, как показано ниже:UITabBarController добавляет новый UIViewController выше односкатных (Swift)

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    NSArray *tabs = self.viewControllers; 

    //set tab controllers 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:(@"Settings_Storyboard_iPad") bundle:nil]; 
    AddFolderViewController *vc = [storyboard instantiateInitialViewController]; 
    self.viewControllers = [NSArray arrayWithObjects:[tabs objectAtIndex:0], [tabs objectAtIndex:1], [tabs objectAtIndex:2], [tabs objectAtIndex:3], vc, nil]; 
} 

В UITabBarController подкласса. Однако в Swift я, похоже, не в состоянии это сделать. Это не позволяет мне получить доступ к индексам вкладок или добавить controller.

ответ

3
override func viewDidLoad() { 
     super.viewDidLoad() 
    var viewControllers: [UIViewController] = self.viewControllers as! [UIViewController]; 

    let storyboard : UIStoryboard = UIStoryboard(name:"Main", bundle: nil) 
    let thirdVC : ThirdViewController = storyboard.instantiateViewControllerWithIdentifier("ThirdVC") as! ThirdViewController 


    let icon1 = UITabBarItem(title: "Third", image:UIImage(named: "image.png"), selectedImage:UIImage(named: "otherImage.png")) 
    thirdVC.tabBarItem = icon1 
    viewControllers.append(thirdVC) 
    self.viewControllers = viewControllers 

}