Actualmente estoy tratando de cambiar el botón atrás de texto de una subvista que está cargado de un tablecell toque. Sin embargo, incluso con la forma en que estoy tratando de implementarlo todavía muestra que los padres de título en el botón atrás.

Estoy tratando de cargar un nuevo valor en el botón atrás en el interior de método viewdidload como

UIBarButtonItem *myBarButtonItem = [[UIBarButtonItem alloc] init];
myBarButtonItem.title = @"Back";
self.navigationItem.backBarButtonItem = myBarButtonItem;
[myBarButtonItem release];

sin embargo no su trabajo.

InformationsquelleAutor C.Johns | 2011-08-30

10 Comentarios

  1. 30

    Necesita cambiar self.navigationItem.backBarButtonItem desde el anterior punto de vista, no de la vista actual (ya sé que parece un poco ilógico). Por ejemplo, en la vista de tabla, puede hacer lo siguiente:

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        [self setTitle:@"My title"];
        UIBarButtonItem *boton = [[UIBarButtonItem alloc] initWithTitle:@"Custom back button text" style:UIBarButtonItemStyleBordered target:self action:@selector(mySelector:)];
        self.navigationItem.backBarButtonItem  = boton;
        [boton release];
    }
    • No se si fue escrito en español 😉
  2. 26

    Aquí es donde la documentación no está tan claro hasta que haya leído y re-leer y jugar con los ajustes.

    Para cambiar el título de la predeterminada de nuevo el botón de añadir esta línea en viewDidLoad()

    self.navigationController.navigationBar.topItem.title = @"Your Label";

    Si desea que el botón a ser invisible, a continuación, establezca el valor a @"" cadena vacía.

    • este es un hack pero funciona si restablece el anterior nib título de nuevo cuando vuelva a ella
    • Votada abajo. Teniendo en cuenta las otras opciones de este, no debe ser considerado como una solución viable. Si nos enfrentamos a una falta de control sobre la forma en el botón atrás se comporta este sería entonces un aceptable hack, pero un hack todavía.
    • El TopItem no es siempre un boton atrás, en un caso, para mí el TopItem fue el punto de Vista de título
  3. 9

    Bien resuelto, he publicado este código en el padre vistas formato tableview:didSelectRowAtIndexPath: método. este es como uno de mis looks con múltiples tablecells el usuario puede seleccionar. Espero que esto ayude.

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        //Navigation logic may go here. Create and push another view controller.
        if (indexPath.section == 0) { //--- picks (first) section
    
         ChildViewController *childViewController = [[ChildViewController alloc] initWithNibName:@"ChildViewController" bundle:nil];
         //...
         //Pass the selected object to the new view controller.
         [self.navigationController pushViewController:childViewController animated:YES];
        //--- this sets the back button to "Back" every time you load the child view.
         self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style: UIBarButtonItemStyleBordered target:nil action:nil] autorelease];
    
            if(indexPath.row == 0) { //--- picks row
                childViewController.title = @"Bike";
            }
            if(indexPath.row == 1) {
                childViewController.title = @"Model";
            }
            [vehicleSearchResponseTableViewController release];
        }
    
    
    }
    • Si usted tiene más de un controlador de vista en la pila esta es la única solución que realmente funciona. Gracias.
  4. 2

    La mejor manera con Xcode 5 para cambiar el botón de retroceso nombre es editar el Botón Atrás de campo en IB de los elementos de Navegación en la Vista de Controlador para que el botón atrás volverá. Por ejemplo, si usted tiene una lista TableViewController que va a un detalle de la pantalla, cambiar el Botón Atrás en la lista de TableViewController del elemento de Navegación (IB) para cambiar el botón atrás del nombre de la pantalla detalle de la muestra.

    • Esta es la forma en que desea hacerlo. Gracias Pedro.
  5. 1

    No va a trabajar de la forma que estamos tratando de hacer. Botón de navegación siempre tendrá el título de la vista previa. Lo que usted puede hacer, aunque de cambio de título de la primera vista, antes de empujar a la nueva. Este es el único que pude encontrar para resolver el mismo problema.

    • y luego, cuando vuelvas tu tienes que cambiar el título de la espalda.. esto es un horrible solución si se trata de la única posibilidad.. crucemos los dedos que hay otra manera.
  6. 0

    El código se ve bien hasta ahora.

    Es este código que se ejecuta antes de que el

    [super viewDidLoad];

    declaración (el mal) o después (bueno)?

    • Yo estaba ejecutando después.
  7. 0

    Después de viewDidLoad

    auto.navigationController!.navigationBar.backItem?.title = «Volver»

  8. 0

    Mi sugerencia fue la de agregar una Etiqueta independiente a los padres de Página de la Barra de título.
    Funcionó bien para mí.

    let titleLabel = UILabel(frame: CGRect(x: (view.frame.width * (3/8)), y: 0, width: (view.frame.width * 0.25 ), height:30))
            titleLabel.text = "Title"
            titleLabel.textAlignment = .center
            titleLabel.textColor = UIColor.white
            titleLabel.font = UIFont.systemFont(ofSize: 20)
            navigationItem.titleView = titleLabel 
  9. -1

    Este artículo debe hacer lo que quiera.

    Del autor:

    Como se puede ver arriba, todo lo que necesita hacer es ajustar el leftBarButtonItem del controlador y se volverá a ocultar el botón atrás. El selector de handleBack ahora se ocupa de la parte de atrás del evento y a continuación deberá estallar de forma manual el controlador de vista fuera de la UINavigationController de la pila. Puede implementar cualquiera de su propio código de allí, incluso el bloqueo de salir de la página.

  10. -3

    Una buena manera de hacer esto es establecer el título del botón atrás en la vista principal del controlador antes de llamar al niño como este:

    [self.navigationItem.backBarButtonItem setTitle:@"Your Custom Title"];

    Este título se colocará en el botón atrás en el niño. El punto importante a entender aquí es que este título se usa en el niño como en el botón volver a la vista principal.

    • Según su explicación, no te refieres a [auto.navigationItem setTitle:@»…»], o incluso de la ‘auto.title = @»…»‘?
    • Por defecto auto.navigationItem.backBarButtonItem es nula, por lo que no puede cambiar el botón atrás el uso de este rito.

Dejar respuesta

Please enter your comment!
Please enter your name here