Вызовите MFMailComposeViewController непосредственно после UIImagePickerController - PullRequest
1 голос
/ 15 августа 2011

Я пытаюсь открыть диалоговое окно электронной почты сразу после того, как кто-то выберет фотографию через UIImagePickerController.Я не могу заставить его всплыть сразу после этого.Я делаю что-то неправильно?В конце концов у меня будет фотография, которая будет приложением, но это не самая сложная часть.Я могу сделать так, чтобы электронная почта и фото-модалы показывались по отдельности, но не автоматически.Спасибо!

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
// Hide the dialouge
[picker dismissModalViewControllerAnimated:YES];
[self becomeFirstResponder];

MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"test"];
[controller setMessageBody:@"test" isHTML:NO];

[self presentModalViewController:controller animated:YES];

}

1 Ответ

1 голос
/ 15 августа 2011

Поскольку вы используете анимацию, чтобы скрыть средство выбора изображений.

UIImagePickerController фактически не удаляется, когда вы пытаетесь представить свой MFMailComposeViewController, поэтому вы получаете ошибку.

Вы можете просто изменить свой код

[picker dismissModalViewControllerAnimated:YES];

до

[picker dismissModalViewControllerAnimated:NO]; // (set Animated to "NO") 

, чтобы обойти эту проблему.

P.S. Я также не уверен, почему вы добавляете

[self becomeFirstResponder];

есть, но это не обязательно.

...