2017-10-05 16 views
0

それぞれのタブにVC1、VC2、VC3の3つのタブを持つUITabBarControllerがあります。 VC1では、ボタンを押したときにVC1をVC4に置き換えたいと思うボタンがあります。どのようにしてUITabBarControllerを取得し、VC配列をVC4、VC2、VC3に更新するのですか?私はVC1の内部でそれを行うことはできますか、または私はappdelegateハンドルを通知する必要がありますか?Swift Change現在のUITabBarControllerのViewController

+1

[SwiftでUITabBarControllerのビューコントローラを設定する]の可能な複製(https://stackoverflow.com/questions/31720420/set-view-controllers-of-uitabbarcontroller-in-swift) – the4kman

+0

密接に関連しています。 とすればできました。tabBarController = self.tabBarController { let first = self.storyboard?.instantiateViewController(withIdentifier: "ChatVC")as! ChatViewController tabBarController.viewControllers![0] =最初の } しかし、タブのタイトル/アイコンを変更することにも及びません私は本当に – justdan0227

答えて

1

はい、これを行うことができます。 UITabBarControllerメソッドsetViewControllers:animatedを使用すると、ビューコントローラの配列を使用できます。タブは、渡す配列と同じ順序で表示されます(左から右へ)。配列を並べ替えて、その配列でsetViewControllers:animatedを呼び出してください。 tabBarItemは、その画像とタイトルがビューコントローラごとに設定されています。したがって、ビューコントローラを並べ替えると、タブバーの項目も並べ替えられます。

+0

感謝をwented何..私はそれを試してみました、そしてそれは「作品」、しかし私がしたいですタブに「HOME」と言い、そのボタンを押すと、そのVCのページにある元の6つのボタンを示すVCに戻ります。これを行うことでAppleのユーザー設計ガイドラインに違反しているかどうかはわかりません。 6ボタンで "Home VC"を表示してください。ボタン1を押します。ホームVCをButton1のVCに置き換えます。ホームタブをもう一度押すと、ホームVCが6つのボタンとともに再び表示されます。問題は、Button1のVCが表示されてそのタブが更新され、ホームVCにスワップするためにタブが再び押されたときに通知を受け取らない場合です – justdan0227

関連する問題