2017-10-05 4 views
0

Ich habe einen UITabBarController mit 3 Registerkarten, die jeweils VC1, VC2 und VC3 haben. In VC1 habe ich einen Knopf, den ich, wenn er gedrückt wird, den VC1 mit VC4 ersetze. Wie bekomme ich den UITabBarController und aktualisiere das VC-Array, um jetzt VC4, VC2, VC3 zu sein. Kann ich das innerhalb von VC1 tun oder muss ich eine Benachrichtigung veröffentlichen, die das Appdelegate behandelt?Swift Change ViewController des aktuellen UITabBarController

+1

Mögliches Duplikat von [Ansichtscontroller von UITabBarController in Swift setzen] (https://stackoverflow.com/questions/31720420/set-view-controllers-of-uitabbarcontroller-in-swift) – the4kman

+0

Eng verwandt. Konnte es tun mit: wenn lassen Sie tabBarController = self.tabBarController { lassen Sie zuerst = self.storyboard? .instantiateViewController (withIdentifier: "ChatVC") as! ChatViewController tabBarController.viewControllers! [0] = erste } jedoch, dass die Registerkarte Titel/Symbol als auch ändert und nicht das, was ich wirklich wented – justdan0227

Antwort

1

Ja können Sie das tun. Sie können UITabBarController Methode setViewControllers:animated verwenden, die Array von View-Controllern akzeptiert. Die Registerkarten erscheinen in der gleichen Reihenfolge wie das Array, an das Sie es übergeben (von links nach rechts). Ordnen Sie das Array einfach neu und rufen Sie setViewControllers:animated mit diesem Array auf. Denken Sie daran, dass die tabBarItem, sein Bild und Titel pro View-Controller festgelegt ist. Wenn Sie also die View-Controller neu anordnen, werden Ihre Tab-Leiste-Elemente ebenfalls neu angeordnet.

+0

Dank .. Ich habe das versucht, und es „funktioniert“, jedoch möchte ich Halten Sie den Tab gedrückt, um HOME zu sagen, und kehren Sie nach dem Drücken zu einem VC zurück, der die 6 ursprünglichen Schaltflächen auf der VC-Seite anzeigt. Ich bin mir nicht sicher, ob ich damit gegen Apple User Design Richtlinien verstoße. Zeigen Sie also "Home VC" mit 6 Tasten. Drücken Sie die Taste 1. Ersetzen Sie Home VC durch den VC von Button1. Wenn die Home-Taste erneut gedrückt wird, wird der Home VC mit den 6 Tasten erneut angezeigt. Problem ist, dass, wenn der VC von Button1 angezeigt wird, der Tab aktualisiert wird und ich nicht benachrichtigt werde, wenn der Tab erneut gedrückt wird, um zurück zum Home VC zu wechseln – justdan0227

Verwandte Themen