У меня есть служебное приложение.Я реализовал этот код с обратной стороны, который вызывает представление обратной связи для отправки электронного письма, например, учебник .Это работает, но затем, когда я нажимаю кнопку UIB «Отправить отзыв», мое приложение сразу падает с *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController sendMail]: unrecognized selector sent to instance 0x89c1960'.
. Я проверил следующие вещи:
. Я правильно объявил делегата и реализовал его.это для MailComposer.
Мой метод sendMail связан с событием TouchUp для кнопки.
Имена моих методов согласны:
- (IBAction)sendMail;
и
- (IBAction)sendMail
{
if ([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *mfViewController = [[MFMailComposeViewController alloc] init];
mfViewController.mailComposeDelegate = self;
[self presentModalViewController:mfViewController animated:YES];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Status:" message:@"Your phone is not currently configured to send mail." delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];
[alert show];
}
}
Код не получает события для этого метода, потому что у меня установлена точка останова в верхней части реализации метода, но она не вызывается.Также не активировалась точка останова в ViewDidLoad.
При внимательном рассмотрении этой ошибки:
reason: '-[UIViewController sendMail]: unrecognized selector sent to instance
кажется, что он ожидает контроллер представления с именем sendMail, а не метод.Я прочитал эту запись , которая кажется очень похожей, но я не вижу никаких других имен контроллеров представлений в раскрывающемся списке XIB Identity.Я думаю, что это часть моей проблемы, но я не уверен, как ее исправить.
Может быть, я должен представить MFMailComposer через viewcontroller?Если это так, я не уверен, как это сделать.
Любые предложения будут оценены.