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
Antwort
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.
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
- 1. Swift-Segue zu UITabBarController Seite von ViewController
- 2. Change tintColor des nicht ausgewählten UITabBarController Element Titel und Hintergrundbild
- 3. deinit UITabBarController nach neuen Viewcontroller präsentiert
- 4. UITabBarController mit gleichen Viewcontroller in verschiedenen Registern
- 5. wie UITabBarController in swift
- 6. Swift: Verwendung des nicht deklarierten Typs 'ViewController'
- 7. Swift UITabBarController ausblenden mit Animation
- 8. Swift: TableView in ViewController
- 9. Ziel C: Wie man Navigation Controller von ViewController hinter meinem aktuellen ViewController
- 10. iOS 6 UITabBarController unterstützt Orientierung mit aktuellen UINavigation Controller
- 11. Wiederverwenden des gleichen viewController oben auf dem navigationStack in swift
- 12. Segle zu ViewController von UITabBarController Szene und zurück "versteckt" UITabBar
- 13. Konnte den Wert vom Typ 'UITabBarController' nicht in 'ViewController' umwandeln
- 14. Segue derzeit von Appdelegate zu UITabBarController in Swift
- 15. Swift Change UIView Image
- 16. ändern Viewcontroller MacOS Swift
- 17. Swift: Benutzerdefinierte ViewController-Initialisierer
- 18. Swift ViewController ignoriert Statusleiste
- 19. Swift Viewcontroller Erklärung nil
- 20. ViewController entlassen swift ios
- 21. Swift vorhanden ViewController Tastatur
- 22. UITabBarController Benutzerdefinierte Schaltfläche nicht versteckt, während zum nächsten Viewcontroller bewegt
- 23. Wie Push andere viewcontroller auf uibutton click event in uitabbarcontroller?
- 24. So präsentieren Sie ViewController eingebettet in UITabBarController und UINavigationBarController
- 25. Uitabviewcontroller Wie öffne ich den 2. Viewcontroller in uitabbarcontroller?
- 26. Wie man den gleichen ViewController für Registerkarten in UITabBarController verwendet
- 27. Swift 3: UITabBarController Registerkarte ändern beim Abwickeln
- 28. Verwenden von UITabBarController mit UINavigationController - Swift 3
- 29. Swift: Array des aktuellen Typs in Array des Protokolltyps konvertieren
- 30. Swift: UITabbarController Overlay ohne Abdeckung TabBar im Storyboard
Mögliches Duplikat von [Ansichtscontroller von UITabBarController in Swift setzen] (https://stackoverflow.com/questions/31720420/set-view-controllers-of-uitabbarcontroller-in-swift) – the4kman
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