Я вижу, вы устанавливаете делегата на self
, что хорошо, но вы также реализуете следующий метод?
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissViewControllerAnimated:YES completion:nil];
}
Я бы предположил, что отмена каким-то образом обрабатывается без сброса контроллера составного представления?
Я бы также попытался изменить следующую строку:
[self presentModalViewController:controller animated:YES];
к этому:
[self.navigationController presentModalViewController:controller animated:YES];
Если вы используете навигационную панель, как вы сказали, попробуйте вместо этого представить на контроллере вашего контроллера вида.
Это может быть что-то странное, как странное взаимодействие с wantsFullscreenLayout
вашего контроллера представления. Перепроверьте все ваши соединения пера, и если он все еще не работает, попробуйте нажать другой, «тестовый» контроллер вида. Это может быть что-то с вашим кодом или пером, а не с самим MFMailComposeViewController
.