добавлять скриншот к электронной почте без сохранения в библиотеку

-9

Мне нужно иметь возможность отправлять электронную почту внутри моего приложения с скриншотом текущего экрана iphone, прикрепленного к нему. Вы нажимаете кнопку, и я беру вас в электронное письмо с прикрепленным скриншотом и без сохранения изображения на камеру. Кнопка, которую вы нажимаете, должна находиться на листе действий. Я знаю код для отправки электронной почты и листа действий, но мне нужно знать, как сделать кнопку на почте в листе действий, включая скриншот.

спросил(а) 2021-01-25T19:03:23+03:00 5 месяцев назад
1
Решение
63

UIActionSheet *options = [[UIActionSheet alloc] initWithTitle:@"Options" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Email", nil];
[options showInView:self.view];

#pragma mark ActionSheet Delegate
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
switch (buttonIndex)
{
case 0:
{

}
default:
break;
}
}

#pragma mark Email

//Allocating Memory for MailComposer
MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init];

mailController.mailComposeDelegate = self;
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *exportData = UIImageJPEGRepresentation(image ,1.0);
[mailController addAttachmentData:exportData mimeType:@"image/jpeg" fileName:@"Screenshot.jpeg"];
[self presentModalViewController:mailController animated:YES];

РЕДАКТИРОВАТЬ:

#pragma mark MailComposer Delegate
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissModalViewControllerAnimated:YES];
}

Не забудьте добавить MFMailComposeViewControllerDelegate в файл заголовка.

Надеюсь, это вам поможет.

ответил(а) 2021-01-25T19:03:23+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема