2017-07-06 1 views
0

J'ai un UITabbarController avec 5 ViewControllers comme numéro d'index 0,1,2,3,4, Maintenant, si son exécution dans l'iPhone puis 5 viewcontrollers chargé sur elle, c'est bien, mais si J'ai changé l'iPhone en iPad, le numéro d'index 4 devrait être différent ViewControllers.Set ViewController pour un index spécifique dans TabbarController

Ex.

if iPad{ 
    tabbarcontroller's index 4 should be B Viewcontroller 
}else{ 
    tabbarcontroller's index 4 should be A Viewcontroller 
} 

J'obtenu une réponse dans l'objectif c, link here mais je ne peux le faire pour Swift, voici mon code:

let settingVc = self.storyboard?.instantiateViewController(withIdentifier: "SettingTabbarController") as! SettingTabbarController 

var controllers : NSMutableArray = [self.viewControllers!][0] as! NSMutableArray 

print(controllers) 

controllers.replaceObject(at: 4, with: settingVc) 

self.setViewControllers(controllers, animated: true) 

Toute aide sera appréciée.

+0

Est-ce votre réglage vc est également intégré dans TabBar? –

+0

@PankajGupta Non, ViewController 5 est embarqué mais j'ai besoin qu'il soit remplacé par un autre viewcontroller pour cet index, qui n'est pas intégré. –

+0

@AbhishekMitra vérifier ma réponse –

Répondre

2

Ici, vous pouvez modifier l'viewController pour l'index spécifique comme ci-dessous

dans votre UITabbarController

self.viewControllers?.remove(at: 4) 
    let newItemController = UIStoryboard(name: "Settings", bundle: nil).instantiateViewController(withIdentifier: "SettingsViewController") as! SettingsViewController 
    newItemController.title = "Settings" 
    newItemController.tabBarItem.image = UIImage(named: "ic_tab_settings") 
    newItemController.tabBarItem.isEnabled = true 
    self.viewControllers?.insert(newItemController, at:4) 
+0

Désolé pour la réponse tardive, cela fonctionne parfaitement, merci beaucoup .. :) –

+0

Ici 'let newItemController = UIStoryboard (nom:" Paramètres ", bundle: nil) .instantiateViewController (withIdentifier:" SettingsViewController ") ! SettingsViewController newItemController.title = "Paramètres" ', j'ai changé' let newItemController = UIStoryboard (nom: "Main", bundle: nul) .instantiateViewController (withIdentifier: "SettingsViewController") comme! SettingsViewController newItemController.title = "Paramètres" ' –