Mam kontroler widoku, który otwiera modalnie MFMailComposeViewController. Kiedy próbuję ustawić delegata kontrolera widoku poczty do kontrolera widoku rodzica, mam to ostrzeżenie:iPhone - MFMailComposeViewController delegate niekompatybilny typ
Assigning to 'id<UINavigationControllerDelegate>' from incompatible
type 'MoreViewController *__strong'
Kontroler widok rodzic na pewno ma MFMailComposeViewControllerDelegate w deklaracji interfejsu i wdraża metodę delegata -mailComposeController: didFinishWithResult:error:
następująco:
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
NSLog(@"Delegate called");
}
Naprawdę nie rozumiem, dlaczego nadrzędny kontroler widoku jest rozpoznawany jako UINavigationControllerDelegate, ponieważ nie implementuję tych metod ani nie deklaruję go jako takiego. Nie martwiłbym się o to, ale metoda delegatów nigdy nie zostanie wywołana, więc domyślam się, że to "niedopasowanie" jest częścią problemu.
Jeśli to pomoże, to jak mam initting poczty widok kontrolera, w viewDidLoad
:
// MAIL
self.mail = [[MFMailComposeViewController alloc] init];
self.mail.delegate = self;
Dzięki z góry za wszelkie myśli mogą wystąpić.
Bingo, dziękuję !! – Rob
Brak problemów. To błąd, który popełniłem wiele razy i nadal robię do dnia, kiedy jestem trochę śpiący! Nie jesteś sam :-). – mattjgalloway
mattjgalloway, dziękuję! :) – Oleg