2017-07-06 13 views
0

私はUITabbarControllerと5 ViewControllersをインデックス番号0,1,2,3,4としています。今、iPhoneで実行してから5つのビューコントローラがロードされていればiPhoneをiPadに変更した場合、インデックス番号4は異なるViewControllersにする必要があります。TabbarControllerの特定のインデックスのViewControllerを設定します

Ex。私はスウィフトのためにそれを作ることができない

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

私はObjective Cの中で答えを得た、link hereしかし、ここに私のコードは次のとおりです。

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) 

任意の助けが理解されるであろう。

+0

以下のような特定のインデックスのためのViewControllerを変更することができますが、あなたの設定VCもタブバーに埋め込まれていますか? –

+0

@PankajGuptaいいえ、ViewController 5が埋め込まれていますが、私はそれが埋め込まれていないそのインデックスの別のviewcontrollerで置き換える必要があります。 –

+0

@AbhishekMitra私の答えを確認する –

答えて

2

ここでは、あなたの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

返信を遅らせて申し訳ありません、それは非常に感謝.. :) –

+0

ここでは 'newItemController = UIStoryboard(name:" Settings "、bundle:nil).instantiateViewController(withIdentifier:" SettingsViewController ")as ! "NewItemController = UIStoryboard(name:" Main "、bundle:nil).instantiateViewController(withIdentifier:" SettingsViewController ")を次のように変更しました:newSetController.title =" Settings " SettingsViewController newItemController.title = "設定" ' –

関連する問題