bar ios swift ios8 uinavigationbar

ios - Ocultar el botón de retroceso en la barra de navegación con hidesBackButton en Swift



navigation bar ios swift 4 (8)

Esto funcionó para mí:

override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) self.tabBarController?.navigationItem.hidesBackButton = true }

Quiero ocultar el botón Atrás al pasar de una vista a otra. Leí las preguntas sobre este problema y cada respuesta fue "use hidesBackButton ". El problema con esto es:

  • cuando lo coloco en viewDidLoad / viewWillAppear la flecha del botón Atrás se oculta, pero la cadena "Atrás" no.

  • cuando lo coloco en viewDidAppear el botón de retroceso desaparece pero es visible para el usuario

¿Cómo puedo arreglar esto?

Editar:

Aquí es cómo puede replicar este problema (o error?)
Crea una nueva aplicación con pestañas con Swift en Xcode. En FirstViewController.swift use performSegueWithIdentifier para navegar hasta el segundo controlador de vista. En el SecondViewController.swift, oculte el botón de retroceso de la barra de navegación con el botón hidesBackButton y verá cuál es el problema.


Intenta agregar esto, esto funcionó para mí

navigationItem.hidesBackButton = true


Intenta agregar esto:

let backButton = UIBarButtonItem(title: "", style: .Plain, target: navigationController, action: nil) navigationItem.leftBarButtonItem = backButton


Me funcionó cuando lo configuré en init (), en lugar de viewDidLoad. Aunque extraño


Para ocultar el botón Atrás con el último Swift:

self.navigationItem.setHidesBackButton(true, animated: false)


Puede usar el siguiente código para ocultar el botón UINavigationBar en UINavigationBar .

Swift 3 ;

override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationItem.hidesBackButton = true }


esto me funcionó

navigationController?.navigationBar.topItem?.hidesBackButton = true


override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.navigationController?.navigationBarHidden = false var button: UIButton = UIButton() button.setImage(UIImage(named: "person-icon.jpg"), forState: .Normal) button.frame = CGRectMake(0, 0, 25, 25) button.targetForAction("actioncall", withSender: nil) var rightItem:UIBarButtonItem = UIBarButtonItem() rightItem.customView = button self.navigationItem.rightBarButtonItem = rightItem let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil) navigationItem.leftBarButtonItem = backButton } override func viewWillAppear(animated: Bool) { let backButton = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: navigationController, action: nil) navigationItem.leftBarButtonItem = backButton }