Ho un controller di visualizzazione che apre un MFMailComposeViewController modally. Quando provo a impostare il delegato del controller della vista mail al controller della vista genitore, ottengo questo avvertimento:iPhone - MFMailComposeViewController delegato tipo incompatibile
Assigning to 'id<UINavigationControllerDelegate>' from incompatible
type 'MoreViewController *__strong'
Il controller di vista padre ha sicuramente MFMailComposeViewControllerDelegate nella sua dichiarazione di interfaccia e sta attuando il metodo delegato -mailComposeController: didFinishWithResult:error:
come segue:
- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
NSLog(@"Delegate called");
}
Davvero non capisco perché il controller di visualizzazione genitore venga riconosciuto come UINavigationControllerDelegate, poiché non implemento tali metodi né lo dichiaro come tale. Non sarei così preoccupato, ma il metodo delegato non viene mai chiamato, quindi suppongo che questo "mismatch" faccia parte del problema.
Se aiuta, questo è come sto initting la vista di controllo posta elettronica, in viewDidLoad
:
// MAIL
self.mail = [[MFMailComposeViewController alloc] init];
self.mail.delegate = self;
Grazie in anticipo per tutti i pensieri che possono avere.
Bingo, grazie !! – Rob
Nessun problema. Questo è un errore che ho fatto molte molte volte e lo faccio ancora oggi quando sono un po 'assonnato! Non sei solo :-). – mattjgalloway
mattjgalloway, grazie! :) – Oleg