En mi aplicación que desea utilizar ‘Atrás’ de texto como el regreso del botón de título para cada viewcontroller.
He leído muchos posts en stackoverflow, pero no consiguió nada.

No quiero establecer leftbarbuttonitem.

Alguien me puede ayudar en esta tarea tan sencilla.

Gracias,

  • Ahora se puede establecer en el guión gráfico.
InformationsquelleAutor S S | 2014-04-17

11 Comentarios

  1. 102

    Hacer esto en la vista principal de control en el niño

    Swift

    navigationItem.backBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: nil, action: nil)

    Que Se Objetive-C

    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
    • Los padres de Controlador de Vista : Hizo el truco.
    • Probado y mundos bien iOS 9.3.2
    • navigationItem.backBarButtonItem = UIBarButtonItem(título: «», estilo: .llano, diana: nil, acción: nil) en Swift
    • no cambia nada, he intentado viewDidLoad y viewWillAppear
  2. 33
    self.navigationController.navigationBar.topItem.title = @"";
    • Funciona en iOS 9.2!
    • Impresionante arreglar… Gracias
    • En mi caso navigationController?.navigationBar.backItem?.title = "" para el botón atrás
    • El problema con este enfoque sería , digamos que usted tiene una casa de controlador de vista con el título de «Inicio» , Luego se desplaza a la segunda controlador de vista que tiene el título de «el Niño» , cuando se aplica este , que va a cambiar la parte de atrás del botón de título , sin embargo, cuando se van, se va a cambiar la pantalla de inicio al título título del botón . 😉 a menos que usted no establecer explícitamente de nuevo .
    • Esta es una solución mucho mejor
    • cambia el titulo en el medio de la barra no regreso del botón de título

  3. 11

    Si usted está utilizando el storyboard puede seleccionar el elemento de navegación en la vista principal de la controladora y establecer el texto del botón que desee en ‘Botón Atrás de campo’. Recuerda poner esto en el padre controlador de vista, no en el niño que es empujado.

    Cambio UINavigationBar de nuevo el botón de título

    • Muchas gracias! esto es de gran ayuda para mí
  4. 5

    Probar esta esperanza será el trabajo

    UIBarButtonItem *btn = 
            [[UIBarButtonItem alloc] initWithTitle:@"New Title" 
                                             style:UIBarButtonItemStyleBordered 
                                            target:nil 
                                            action:nil];
    [[self navigationItem] setBackBarButtonItem:btn];
    • Gracias por la respuesta. Ya he intentado esto pero no funciona.
    • añadir esta línea en la vista hizo método de carga desde donde estás cambiando el siguiente viewcontroller. como usted va a la vista de detalles del controlador(teniendo botón atrás) de maestro de vista controlador, a continuación, añadir en la masterview controlador método viewdidload @SeemaSharma
    • He escrito en el padre de controlador de vista y funciona. Gracias!!!
    • bienvenido…… 🙂
  5. 4

    Que necesitaba usar self.navigationController.navigationBar.backItem.title = @"";, con la diferencia de que yo estoy usando backItem en lugar de topItem.

    • No funciona. ¿Dónde te llaman? Traté de viewDidLoad y viewWillAppear, pero no pasa nada, cuando llama a self.navigationController?.navigationBar.backItem?.title = "test"
  6. 0

    swift 2.0:

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.navigationController?.navigationBar.topItem?.title = ""
    }

    Nota: Esto sólo funciona si el guión tiene una cadena de pila de navegación.

    Otras opciones/cambiar título:

    self.navigationController?.navigationBar.backItem?.title = ""
    navigationItem.backBarButtonItem?.title = ""
    navigationItem.leftBarButtonItem?.title = ""

    La eliminación de navigationItem:

    navigationItem.setLeftBarButtonItem(nil, animated: true)
    • Mientras que este código puede responder a la pregunta, es mejor explicar lo que hace y agregar algunas referencias a ella.
    • cambia el titulo en el medio de la barra no regreso del botón de título
  7. 0

    Los cambios visibles actualmente Botón Atrás

    extension UIViewController {
    func setCurrentBackButton(title: String) {
        guard let vcCount = self.navigationController?.viewControllers.count else {
            return
        }
    
        let priorVCPosition = vcCount - 2
    
        guard priorVCPosition >= 0 else {
            return
        }
    
        self.navigationController?.viewControllers[priorVCPosition].navigationItem.backBarButtonItem = UIBarButtonItem(title: title, style: .plain, target: self, action: nil)
    }
  8. -1

    A quitar de nuevo el botón de título para todos controlador de vista de agregar nuevo swift archivo y copiar este extinción a

    import UIKit
    
    extension UIViewController {
        static func swizzle(){
    
    
            let orginalSelector = #selector(viewDidLoad)
            let swizzledSelector = #selector(swizzledViewDidLoad)
    
            let orginalMethod = class_getInstanceMethod(UIViewController.self, orginalSelector)
            let swizzledMethod = class_getInstanceMethod(UIViewController.self, #selector(swizzledViewDidLoad))
    
            let didAddMethod = class_addMethod(UIViewController.self, orginalSelector, method_getImplementation(swizzledMethod!), method_getTypeEncoding(swizzledMethod!))
    
            if didAddMethod {
                class_replaceMethod(UIViewController.self, swizzledSelector, method_getImplementation(orginalMethod!), method_getTypeEncoding(orginalMethod!))
            }else{
                method_exchangeImplementations(orginalMethod!, swizzledMethod!)
            }
    
        }
    
        @objc func swizzledViewDidLoad(){
            navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
            swizzledViewDidLoad()
        }
    
    
    }

    después de que en el AppDelegate dentro de didFinishLaunchingWithOptions, llame a la swizzle func.

    UIViewController.swizzle()

    esta func utiliza el objetivo de tiempo de ejecución de c para el cambio de viewDidLoad método con otro que se quita la parte de atrás del botón de título y, a continuación, dentro de recordar la original viewDidLoad

  9. -1

    De Nuevo El Botón Con La Flecha Hacia Atrás

    Objective-C

    self.navigationController.navigationBar.topItem.backBarButtonItem = 
    [[UIBarButtonItem alloc] initWithTitle:@"Title" style:UIBarButtonItemStylePlain
    target:nil action:nil];

    Swift

    self.navigationController?.navigationItem.backBarButtonItem = 
    UIBarButtonItem(title:"Title", style:.plain, target:nil, action:nil)

    Botón Normal Sin Flecha Atrás

    Objective-C

    self.navigationItem.leftBarButtonItem = 
    [[UIBarButtonItem alloc] initWithTitle:@"Title" 
    style:UIBarButtonItemStylePlain target:nil action:nil];

    Swift

    self.navigationItem.leftBarButtonItem = UIBarButtonItem(title:"Title", 
    style:.plain, target:nil, action:nil)

    Botón Negrita, Sin Volver La Flecha

    Objective-C

    self.navigationItem.leftBarButtonItem = 
    [[UIBarButtonItem alloc] initWithTitle:@"Title" 
    style:UIBarButtonItemStyleDone target:nil action:nil];

    Swift

    self.navigationItem.leftBarButtonItem = UIBarButtonItem(title:"Title", 
    style:.done, target:nil, action:nil)
  10. -2

    en AppDelegate en el DidFinishLaunchingWithOptions agregue este código:

    [[UIBarButtonItem appearance] 
    setBackButtonTitlePositionAdjustment:UIOffsetMake(-1000.0, 0.0) 
    forBarMetrics:UIBarMetricsDefault];

Dejar respuesta

Please enter your comment!
Please enter your name here