Deshabilitar un elemento del button de barra de navigation

Cuando se configura el button derecho de la barra de navigation para deshabilitado, no cambia su color para indicar su estado deshabilitado para el usuario.

Permanece "resaltado", no en gris.

Configuré el button en Storyboard de la siguiente manera:

introduzca la descripción de la imagen aquí

self.navigationController.navigationItem.rightBarButtonItem.enabled = NO; 

¿Qué debo hacer para cambiar visualmente el estado del button también?

¡Gracias!

Ninguna de las respuestas relevantes fue capaz de producir el resultado que estaba buscando, pero pude resolver esto estableciendo los attributes de text en mis botones de navigation:

 [navButton setTitleTextAttributes:@{NSForegroundColorAttributeName:enabledColor} forState:UIControlStateNormal]; [navButton setTitleTextAttributes:@{NSForegroundColorAttributeName:disabledColor} forState:UIControlStateDisabled]; 

Entonces, todo lo que necesito hacer es lo siguiente y la interactividad y el color del usuario cambian automáticamente:

 navButton.enabled = YES; // or NO 

Crédito a Vijay-Apple-Dev.blogspo por esta respuesta.

 self.navigationItem.leftBarButtonItem.enabled = NO; self.navigationItem.rightBarButtonItem.enabled = NO; 

Aparentemente, esto grita los botones y también los desactiva.

NOTA: la suposition en la pregunta de que self.navigationController.navigationItem.rightBarButtonItem.enabled = NO; Parece que funciona mal, luego de probarlo en mi código, descubrí que no tenía efecto.

De nuevo, gracias a Vijay observando que podría ser mejor usar:

 self.navigationItem.hidesBackButton = YES; 

A Apple no le gusta deshabilitar el button Atrás.

Personalmente, voy a desactivar el button superior derecho y ocultar el button Atrás para evitar que el usuario los presione, luego habilitarlos nuevamente cuando lo elija.

Un enlace a la pregunta está aquí

Esta respuesta se publica para estar completa y, por lo tanto, los futuros usuarios no necesitan continuar buscando en esta página.

testing algo como esto:

 [[self.navigationItem.rightBarButtonItems objectAtIndex:0] setEnabled:NO]; 

Puede intentar cambiar manualmente el color del tinte así:

  self.navigationItem.rightBarButtonItem.tintColor = [UIColor grayColor]; 

Este es un código no probado, pero debería funcionar. Además, no olvide cambiarlo cuando esté habilitado nuevamente.

Actualízalo a:

 self.navigationItem.leftBarButtonItem?.isEnabled = true