& #39;Приложение пыталось представить нулевой контроллер модального представления на целевом объекте& #39; ошибка/сбой при попытке открыть почтовый редактор

У меня есть простое приложение, которое открывает модальное представление для отправки электронной почты. Я использую Xcode 4.2 и iOS 5 и тестирую iOS Simulator. Приложение вылетает с Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина:
«Приложение пыталось представить нулевой контроллер модального представления на цели.'

при выполнении строки :

 [self presentModalViewController:mailComposer animated:YES];

, хотя я инициализировал объект 'mailComposer'.

Class com _FirstViewController.m:

#import "com_FirstViewController.h"
...
@implementation com_FirstViewController
....
....
-(void)showEmailComposer {

Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
    if ([mailClass canSendMail]) {
                    NSLog(@"showEmailComposer: Calling displayComposerSheet");
        [self displayComposerSheet];

    } else {
                    NSLog(@"showEmailComposer: Calling launchMailAppOnDevice");
        [self launchMailAppOnDevice];
    }
}
else {
            NSLog(@"showEmailComposer: Calling launchMailAppOnDevice");
    [self launchMailAppOnDevice];
}
}



#pragma mark -
#pragma mark Compose Mail

-(void) displayComposerSheet {

    mailComposer = [[MFMessageComposeViewController alloc] init];
    mailComposer.messageComposeDelegate = self;

    // Set the mail title
    [mailComposer setTitle:@"Mail Title"];

    // Set the recipients
    NSArray *toRecipients = [NSArray arrayWithObject:@"user@company.com"];

    [mailComposer setRecipients:toRecipients];

    // EMail Body
    NSString *mailBody = @"This is the mail body";
    [mailComposer setBody:mailBody];

    NSLog(@"present the modal view ctlr");
    [self presentModalViewController:mailComposer animated:YES];
}
...
...

Любые указатели, пожалуйста?

21
задан Jean 3 May 2012 в 16:26
поделиться