¿Cómo se elimina el texto del botón de retroceso?
Botón de retroceso actual:
<Volver
Botón de retroceso deseado:
<Cualquier otra cosa
Ninguno de estos ha funcionado:
self.navigationItem.backBarButtonItem?.title = "Back"
self.backItem?.title = ""
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationItem.backBarButtonItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title="Back"
self.navigationController?.navigationBar.backItem?.title = ""
self.navigationController?.navigationItem.backBarButtonItem?.title
ios
objective-c
swift
Onichan
fuente
fuente
title
cambios del título , no solo el botón de retroceso.Puede hacerlo desde el generador de interfaces de la siguiente manera:
haga clic en el elemento de navegación del controlador de vista anterior
desde el inspector de atributos, configure el texto del botón Atrás para lo que desee. ¡¡Eso es!!
fuente
El texto del botón de retroceso se toma del título del elemento de navegación del controlador de vista principal. Entonces, lo que establezca en el título del elemento de navegación del controlador de vista anterior, se mostrará en el texto del botón de retroceso del controlador de vista actual. Simplemente puede poner "" como título del elemento de navegación en el método viewWillAppear del controlador de vista principal.
Otra forma es poner
en el método actual viewWillAppear del controlador de vista. Este causará algún otro problema si la pila de navegación está demasiado anidada.
fuente
prepareForSegue
, que es. un poco más limpio porque no estás alterando el nuevo viewController después de que se carga.Puede poner esta línea de código 3 en el
ViewController
que desea cambiar el título del botón Atrás.En su
override func viewDidLoad() {}
.fuente
Si está utilizando el archivo xib para el controlador de vista, hágalo en su clase de controlador de vista.
El resultado será:
fuente
No sé dónde usó los métodos que puso en su pregunta, pero podría obtener el resultado deseado si uso, en mi
ViewController
clase (en la que quiero cambiar el botón Atrás), enviewDidLoad()
función, la siguiente línea:El resultado será:
antes de
Después
fuente
navigationController.navigationBar.topItem?.title = ""
lugar para evitar poner estoviewDidAppear
El botón Atrás pertenece al controlador de vista anterior, no el que se presenta actualmente en la pantalla. Para modificar el botón Atrás, debe actualizarlo antes de presionar, agregue viewdidload:
Swift 4:
fuente
Simplemente puede modificar el elemento de navegación en el guión gráfico
En el botón Atrás, agregue un espacio y presione Entrar.
fuente
Swift 4 : configure el botón Atrás antes de presionar cualquier controlador de vista
fuente
Esto debería funcionar:
Aunque no se recomienda, ya que esto realmente reemplaza el botón BackButton y también elimina la flecha hacia atrás y el gesto de deslizar.
fuente
Swift 4.2
Si desea cambiar el texto del elemento del botón de retroceso de la barra de navegación, colóquelo en
viewDidLoad
el controlador ANTES de donde se muestra el botón de retroceso, NO en el controlador de vista donde está visible el botón de retroceso.Si desea cambiar el texto del título de la barra de navegación actual, use el código a continuación (tenga en cuenta que este se convierte en el texto posterior predeterminado para la vista SIGUIENTE introducida en el controlador de navegación, pero el código anterior puede anular este texto posterior predeterminado)
fuente
Hay dos maneras.
1.En el anterior ViewController.viewDidLoad ()
2.En el currentViewController.viewDidAppear ()
Razón:
backButton
proviene denavigationBar.backItem.backBarButtonItem
, por lo que la primera forma es obvia. En currentViewController.viewDidLoad (), no podemos obtener la referencia debackItem
, porque en viewDidAppear (),navigationBar
presionamosnavigationView
sustack
.so podemos hacer cambios enbackItem
in currentViewController. viewDidAppear ()Para más detalles, puede ver Documento: UINavigationBar
fuente
En el
viewDidLoad
método del controlador presentador, agregue:fuente
aunque estas respuestas solucionan el problema, pero esto podría ser útil
fuente
Swift 4
Si bien el dicho anterior para prepararse para la segue es correcto y es cierto, el botón de retroceso pertenece al VC anterior, solo agrega un montón de código innecesario.
Lo mejor que puede hacer es establecer el título del VC actual en viewDidLoad y establecerá automáticamente el título del botón Atrás correctamente en el próximo VC. Esta linea funciono para mi
fuente
Esto funciona para Swift 5 :
Tenga en cuenta que será efectivo para el siguiente controlador de vista presionado, no el actual en la pantalla, ¡por eso es muy confuso!
Además, verifique el guión gráfico y seleccione el elemento de navegación del controlador de vista anterior , luego escriba algo en el Botón Atrás (Inspector).
fuente
Prueba esto ... funcionará ...
El código anterior ocultará el texto y mostrará solo la flecha hacia atrás en la barra de navegación.
fuente
Establecer
self.title = ""
antesself.navigationController?.pushViewController(vc, animated: true)
.fuente
¡¡Espero eso ayude!! #swift 3
fuente
Si está presionando un controlador de vista desde la página del controlador de vista de página, no puede actualizar el título del botón de retroceso del controlador de navegación. Para resolver esto, cree un delegado nuevamente en su controlador de vista principal (también puede recorrer la jerarquía del controlador de vista hasta el padre).
Además, los botones Atrás tienen un límite de caracteres. Si excede ese límite de caracteres, el sistema pasará por defecto a "Atrás". No se truncará por ti. Por ejemplo:
fuente
Swift 4
En mi caso, la solución fue borrar el elemento de navegación del Master View Controller antes de pasar al Child View Controller. Y configúrelo nuevamente si se muestra nuevamente
MasterController
Y así es como presiono un UIViewController y borro el elemento del botón de la barra posterior en el controlador secundario:
MasterController
fuente
para Swift 4.2
fuente
GOTCHA: Si tiene problemas con alguna de las sugerencias con muchas estrellas, asegúrese de registrar sus
UITableViewCell
correos electrónicosviewDidLoad()
, no deinit()
fuente
Solución comprobada y funciona en Swift 5
A continuación pongo algunas soluciones para diferentes casos:
1. Eliminar texto del botón Atrás
La mejor solución para eliminar texto del botón Atrás es agregar viewDidLoad ():
2. Establecer texto propio en el botón Atrás
En caso de que desee configurar su propio título, hágalo configurando el título de backButton:
3. Botón de retroceso vacío en todos los VC
Si desea crear un estilo común en toda la aplicación: para tener una flecha hacia atrás sin texto, cree un VC base para todos sus Controladores de vista:
La solución presentada anteriormente le permite personalizar el botón de retroceso en el futuro si desea hacer alguna excepción más adelante, agregando una variable adicional y anulándola en ViewController específico, f.ex:
fuente
rápido 4
Hay una forma de cambiar el texto en backButton mediante programación desde viewController actual:
fuente