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