Apariencia proxy – setShadowImage alternativa para iOS 5?

Hola, estoy usando este código para configurar la image sombreada de mi barra de navigation:

if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)]) { [[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"nav-bar-shadow"]]; [[UIToolbar appearance] setShadowImage:[UIImage imageNamed:@"tool-bar-shadow"] forToolbarPosition:UIToolbarPositionAny]; } 

Sin embargo, parece que es solo iOS 6 (aunque no puedo asegurarlo, no puedo encontrar documentation sobre esto en ningún lado). No funciona en iOS 5.

¿Hay algún tipo de alternativa: configurar globalmente una image en la barra de navigation? Pensé en UIView personalizada, pero ¿cómo hacer esto globalmente?

Usted puede:

  1. Agregue una subvista que contenga la image de sombra a su viewController.view
  2. Agregue una subvista que contenga la image de sombra a su [[UIApplication shanetworkingApplication] keyWindow] , que agregará la image de forma global en su window. Sin embargo, puede ser un poco feo, por ejemplo, al mostrar un controller de vista modal.
  3. Puede subclass UINavigationBar , hacer algo de magia con sub-vistas allí y luego inicializar su [[UINavigationController alloc] initWithNavigationBarClass:[YourNavBarSubclass class] toolbarClass:[UIToolbar class]] vía [[UINavigationController alloc] initWithNavigationBarClass:[YourNavBarSubclass class] toolbarClass:[UIToolbar class]]

shadowImage es solo ios6:

 @property(nonatomic,retain) UIImage *shadowImage NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;