У меня есть контроллер представления, который модально открывает 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;
Заранее спасибо за любые мысли, которые могут у вас возникнуть.