ios7 - llega - El campo Destinatarios de MFMessageComposeViewController no se muestra en iOS 7
itunes (2)
Descubrí que el campo del destinatario de MFMessageComposeViewController parece tomar parte de su apariencia del proxy de apariencia UINavigationBar en iOS7. Para evitar esto, he hecho lo siguiente en mis aplicaciones:
- Cree una subclase UINavigationController personalizada y vacía, que no invalide ninguno de los métodos de UINavigationController.
Utilice esta subclase UINavigationController personalizada como un marcador para cualquier controlador de navegación que quiera tener apariencia personalizada, configurando la clase personalizada en el inspector de identidad en IB:
En mi delegado de aplicaciones, configure la apariencia de las barras de navegación de esta forma:
[[UINavigationBar appearanceWhenContainedIn:[MyCustomNavigationController class], nil] ...];
Esto garantiza que obtenga la apariencia de la barra de navegación que deseo en los controladores que deseo personalizar, pero conserva la apariencia estándar de la barra de navegación (y relacionada) en otros controladores (como MFMessageComposeViewController). Aquí hay una captura de pantalla; tenga en cuenta el aspecto estándar de MFMessageComposeViewController, con el aspecto de la barra de navegación personalizada en la ventana emergente en el fondo:
El siguiente código funciona bien en iOS 5/6. En iOS 7, se ve así (óvalo rojo para énfasis).
Código:
if ([MFMessageComposeViewController canSendText]) {
self.messageComposer = [MFMessageComposeViewController new];
self.messageComposer.recipients = @[number];
self.messageComposer.messageComposeDelegate = self;
[self presentViewController:self.messageComposer
animated:YES
completion:nil];
}
Pregunta : Este es un código simple. ¿Hay alguna otra propiedad externa, tal vez del controlador de vista de presentación, que esté afectando esto? ¿Alguien tiene una solución o solución?
Gracias.
Me enfrenté al mismo problema y aquí está mi solución.
Antes de presentar su [self presentViewController:messageComposer animated:YES completion:nil];
mensajes ( [self presentViewController:messageComposer animated:YES completion:nil];
)
[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
y en método delegado
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result {
UIImage *backgroundImage = [UIImage imageNamed:@"Navigation Bar"];
[[UINavigationBar appearance] setBackgroundImage:backgroundImage forBarMetrics:UIBarMetricsDefault];
[self dismissViewControllerAnimated:YES completion:nil];
}
¡¡Eso es todo!!