tab item create bar swift uinavigationcontroller uitabbarcontroller

item - uitabbarcontroller programmatically swift 4



¿Cómo establecer el título de la barra de navegación en Swift? (3)

Como la Tab Bar es en realidad el Root View Controller de Root View Controller de la Navigation Bar , debe establecer el title UITabBarController en su lugar en la función viewWillAppear para que ocurra cada vez que cambia de pestañas:

override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) self.tabBarController?.navigationItem.title = "My Title" self.tabBarController?.navigationItem.leftBarButtonItem = settingsButton //This is the IBOutlet variable that you previously added }

Pero una mejor manera de hacerlo sería en realidad tenerlo al revés, como

Debería conectar un UINavigationController para cada elemento secundario del UITabBarController , ya que es más correcto semánticamente y más fácil de mantener.

Intento establecer el título de la Navigation Bar de Navigation Bar en Swift, configuro la Tab Bar y en la Navigation Bar no se muestra nada, no hay botón, no hay título, nada. Usé un código pero no funciona mientras uso la Tab Bar , y cuando Tab Bar , el código funciona y todo está bien con la Navigation Bar , el título se muestra y se muestran los botones.

El código que utilicé para el título es:

override func viewDidLoad() { super.viewDidLoad() self.navigationItem.title = "My Title" }

Y en Main.storyboard , conecté el Navigation Controller con el Tab Bar Controller , como en la imagen.

Entonces, ¿cómo arreglar esto? El problema es que la Navigation Bar no funciona cuando se usa la Tab Bar .


En UINavigationController Class Reference Apple escribió esto:

init (rootViewController: UIViewController)
Parámetros rootViewController
El controlador de vista que reside en la parte inferior de la pila de navegación. Este objeto no puede ser una instancia de la clase UITabBarController.

Pero puede hacerlo si insistió. Pero en este caso, sus ViewControllers de tabbarController todos compartieron el mismo título, que es el título de tabbarController.

Una mejor manera de hacerlo es otorgarle a cada uno de los controles de vista de tabbarController un NavigationViewController.


Su pregunta no está clara, si el código que presentó es de UIViewController que se mantiene dentro de UINavigationController y se muestra navigationBar , puede simplemente usar:

override func viewDidLoad() { super.viewDidLoad() self.title = "My Title" }