私はMFMailComposeViewControllerをモーダルで開くビューコントローラを持っています。私は親ビューコントローラにメールView Controllerのデリゲートを設定しようとすると、私はこの警告を得る:iPhone - 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
で、メールビューコントローラをinittingい方法です:あなたが持つかもしれない考えを事前に
// MAIL
self.mail = [[MFMailComposeViewController alloc] init];
self.mail.delegate = self;
感謝。
ビンゴ、ありがとうございます! – Rob
probsはありません。それは私が何度も何度も作った間違いであり、私はちょっと眠そうですが、今日までやっています!あなたは一人じゃない :-)。 – mattjgalloway
mattjgalloway、ありがとうございます! :) – Oleg