У меня есть контроллер вида, который открывает MFMailComposeViewController. Когда я пытаюсь установить делегат контроллера просмотра почты в родительский контроллер представления, я получаю следующее предупреждение:
Assigning to 'id<UINavigationControllerDelegate>' from incompatible
type 'MoreViewController *__strong'
Контроллер родительского представления определенно имеет MFMailComposeViewControllerDelegate в объявлении интерфейса и реализует метод делегата -mailComposeController: didFinishWithResult:error:
следующим образом:
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
NSLog(@"Delegate called");
}
Я действительно не понимаю, почему контроллер родительского представления распознается как UINavigationControllerDelegate, так как я не реализую эти методы и не объявляю его как таковой. Я не стал бы так беспокоиться об этом, но метод делегата никогда не будет вызван, поэтому я предполагаю, что это "несоответствие" является частью проблемы.
Если это помогает, вот как я вхожу в контроллер почты, в viewDidLoad
:
// MAIL
self.mail = [[MFMailComposeViewController alloc] init];
self.mail.delegate = self;
Заранее благодарим за любые мысли, которые у вас могут быть.