我有一个视图控制器,它以模态方式打开一个 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;
提前感谢您的任何想法。