7

He buscado en varios foros diferentes y parece que no puedo encontrar una respuesta para esto. Agregué un elemento de botón de barra a un controlador de navegación y configuré su estilo en UIBarButtonItemStyleDone. Cuando este es el primer controlador en la pila de navegación, el botón aparece correctamente en azul. Sin embargo, cuando se crea e inserta el controlador en la pila, el estilo se ignora y se muestra en negro.UIBarButtonItemStyleDone no crea botones azules en la barra de navegación cuando se presiona el controlador

Sé que este problema se produce cuando tintColor se ha cambiado, pero estoy utilizando el estándar UIBarStyleBlack y no se establece tintColor. También intenté establecer tintColor en cero, pero eso tampoco funciona.

código relevante:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.navigationController.navigationBar.barStyle = UIBarStyleBlack; 
    self.navigationItem.rightBarButtonItem = 
    [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                target:self 
                action:@selector(createNew:)]; 
    self.navigationItem.rightBarButtonItem.style = UIBarButtonItemStyleDone; 
} 

Cualquier ideas o soluciones sería muy apreciada.

Respuesta

10

Está utilizando un elemento de sistema preestablecido, para el cual la propiedad style no hace nada. Debe cambiar al elemento del sistema UIBarButtonSystemItemDone (que es azul, pero dice "Listo") o cambiar a -initWithImage:style:target:action: o -initWithTitle:style:target:action: y proporcionar su propia imagen o texto.

+0

El botón se mostrará en azul, por lo que la propiedad de estilo debe hacer algo, solo aparece como azul de forma incoherente. – Cameron

+0

Sin embargo, Grahamparks tiene razón: use el elemento del sistema Done. – Bill

+0

Si lo hace: '[[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemDone target: acción propia: @selector (createNew :)];' funcionará. Tal como lo señalaron grahamparks –

Cuestiones relacionadas