En la aplicación Fotos en el iPhone, cuando selecciona la opción Compartir correo, la foto se anima en el controlador de vista modal que se desliza hacia arriba. ¿Cómo es posible modificar el comportamiento de las UIActivities integradas? Por ejemplo, me gustaría poder establecer el campo de asunto del compositor de correo.Ignorar el comportamiento predeterminado de UIActivityViewController
Respuesta
Desafortunadamente, la personalización del campo de asunto del UIActivityViewController
compositor de correo no funciona todavía.
Hay un error documentado e informado con respecto a tratar de adaptar este discutido aquí:
iphone - How do I set recipients for UIActivityViewController in iOS 6?
Si esto se trabaja, según la documentación, que sería capaz de personalizar estos compositor electrónico campos:
UIActivityTypeMail: El objeto publica el contenido proporcionado en un nuevo mensaje de correo electrónico. Cuando utiliza este servicio, puede proporcionar objetos NSString y UIImage y objetos NSURL apuntando a archivos locales como datos para los elementos de actividad. También puede especificar objetos NSURL cuyo contenido utiliza el esquema mailto .
Así, utilizando el esquema mailto, cuando se está trabajando, usted debería ser capaz de personalizar los campos de este tipo:
NSString *text = @"My mail text";
NSURL *recipients = [NSURL URLWithString:@"mailto:[email protected]?subject=Here-is-a-Subject"];
NSArray *activityItems = @[text, recipients];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
Si su búsqueda de otras formas de personalizar la UIActivityViewController
hay un excelente ejemplo de proyecto aquí:
Esta es la forma en que lo hice y se está trabajando para mí en IOS 7.
Crear una clase que cumpla con el protocolo UIActivityItemSource:
@interface CustomActivityItem : NSObject <UIActivityItemSource>
@end
En la implementación anular los métodos pertinentes:
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController
{
return @"";
}
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType
{
if ([activityType isEqualToString:UIActivityTypeMail])
{
return @"Subject"
}
return nil;
}
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType
{
if ([activityType isEqualToString:UIActivityTypeMail])
{
return @"body";
}
return nil;
}
luego presentar el controlador de vista actividad:
CustomActivityItem* activityItem = [[CustomActivityItem alloc] init];
UIActivityViewController* activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[activityItem]
applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];
No parece que este enfoque funcione para iOS9. Obtendrá un error 'init' se ha marcado explícitamente como no disponible aquí. – DenVog
Todavía estoy usando este enfoque en iOS 9, compilando con Xcode Version 7.0.1 (7A1001), y funciona bien. ¿Cuál es el error exacto que está recibiendo? – pedrobolanos
¿Esto agrega un destinatario? – mKane
- 1. Evitar el comportamiento de ancla predeterminado AngularJS
- 2. Autocompletar de JQuery: Reemplazar el comportamiento predeterminado
- 3. UIActivityViewController. Cómo personalizarlo?
- 4. Comportamiento de autocommit de conexión JDBC predeterminado
- 5. Detener comportamiento predeterminado de hashtag con jquery
- 6. Adjuntar objeto utilizando iOS6 UIActivityViewController
- 7. Findbugs + JSR305: ¿posibilidad de especificar el comportamiento predeterminado?
- 8. Reemplace el comportamiento predeterminado de Retroceso en AutoCompleteTextView
- 9. Detener el comportamiento predeterminado de eventos en Swing
- 10. Anula el comportamiento predeterminado de TAB en JTextPane
- 11. Evitar el comportamiento predeterminado de hash en la página carga
- 12. Ignorar el mensaje ASP.NET MVC predeterminado en FluentValidation
- 13. Ejemplo de cómo personalizar el menú compartido de UIActivityViewController?
- 14. ¿Cuál es el comportamiento predeterminado del Método Equals?
- 15. Hacer M- (el comportamiento predeterminado en Emacs cuando "(" se escribe
- 16. ¿Cómo anulo __getattr__ en Python sin romper el comportamiento predeterminado?
- 17. ¿Por qué SET XACT_ABORT NO está en el comportamiento predeterminado?
- 18. ¿Cómo configuro los destinatarios para UIActivityViewController en iOS 6?
- 19. Cómo cambiar el comportamiento predeterminado de ordenación nula de PostgreSQL en el ORM de Django
- 20. Cómo hacer que una clave asignada vuelva al comportamiento predeterminado
- 21. predeterminado Desactivar UIWebView desplazamiento comportamiento usando Objective-C
- 22. Cómo deshabilitar el comportamiento de pintura predeterminado del evento de desplazamiento de rueda en JScrollPane
- 23. Sobrescribir el comportamiento predeterminado de las etiquetas de anclaje usando jquery
- 24. Anula el comportamiento predeterminado de los operadores de comparación en JavaScript
- 25. ¿Cómo se anula el valor predeterminado de un campo en un comportamiento de destreza en Plone?
- 26. ¿Por qué el evento "onmouseover" utiliza "return true" para evitar el comportamiento predeterminado?
- 27. SVN Ignorar: cómo ignorar el contenido de un directorio
- 28. Ignorar SVN ¿ignorar ... posible?
- 29. ¿Cuál es el comportamiento predeterminado de MySQL JOIN, INNER u OUTER?
- 30. ¿Cómo anulo el comportamiento predeterminado de select: en jQuery UI Autocomplete?
Gracias s para el enlace. Para Mail, o cualquier otra cosa que no se comporte como usted desea, creo que es posible crear un UIActivitySource personalizado que haga lo que desee. En este caso, excluya UIActivityMail y cree una actividad personalizada que llene el campo del asunto, etc. – n13