Я видел несколько вопросов до таких, как , но из-за отсутствия принятого ответа, а также для того, чтобы реализовать все по мере необходимости, я по-прежнему продолжаю сталкиваться с проблемой следующим образом:
Я показываю почтовый композитор, но при нажатии "Отмена", просмотр композитора замерзает. Я думаю, что это связано с тем, что лист действий "Сохранить/удалить" появится из видимого кадра. Да, я установил mailComposeDelegate в предстающий контроллер представления и прочитал несколько аналогичных вопросов, когда пользователь не обработал делегата (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
, чтобы отклонить композитор при отмене. Я тоже это обработал, но, по-видимому, мне кажется, что я не понял, почему лист действий не отображается в видимой области экрана в версии iPhone моего универсального приложения. Рамка просмотра диспетчера представления, представляющая почтовый композитор в виде NSLogged, представляет собой (0,0,320,480). Мое приложение универсально, а композитор почты отлично работает на iPad. Ниже приведен снимок экрана о том, как выглядит композитор, работающий на iPhone Simulator 5.1: -
Здесь приведен код для отображения композитора:
-(IBAction)mailButtonPressed:(id)sender {
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"Subject"];
[controller setMessageBody:@"Test" isHTML:YES];
[controller setToRecipients:nil];
if(controller) {
[self presentModalViewController:controller animated:YES];
[controller release];
}
}
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError*)error
{
[self dismissModalViewControllerAnimated:YES];
}