iPhone - тип делегата MFMailComposeViewController несовместим

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

Заранее спасибо за любые ваши мысли.

15
задан Rob 17 March 2012 в 20:43
поделиться