MFmailcomposer когда-то дает ошибку?

Я использую MFMailcomposer для отправки почты из своего приложения в IPhone. Все работает нормально, но когда я переношу его на iPhone 5 и ios6 когда-нибудь

_serviceViewControllerReady:error: Error Domain=_UIViewServiceInterfaceErrorDomain Code=1 "The operation couldn’t be completed. (_UIViewServiceInterfaceErrorDomain error 1., но если я запустил снова, нет проблем, он работал нормально.

Я представляю почтовый композитор, как этот `

action
{
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    if (mailClass != nil)
    {
        // We must always check whether the current device is configured for sending emails
        if ([mailClass canSendMail])
        {
            [self displayComposerSheet];
        }
        else
        {
            [self launchMailAppOnDevice];
        }
    }
    else
    {
        [self launchMailAppOnDevice];
    }

}


void)displayComposerSheet 
{

    AppDelegate *appdelegate=[[UIApplication sharedApplication] delegate];
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;  

    [picker setSubject:@"report"];



    // Set up recipients
    NSArray *toRecipients=[NSArray arrayWithObject:@""]; 
    NSArray *ccRecipients =[[NSArray alloc]init];//= [NSArray arrayWithObjects:@"", @"", nil]; 
    NSArray *bccRecipients=[[NSArray alloc]init];// = [NSArray arrayWithObject:@""];    
    [picker setToRecipients:toRecipients];
    [picker setCcRecipients:ccRecipients];  
    [picker setBccRecipients:bccRecipients];    
    [picker setMessageBody:@"Please send me  now." isHTML:YES];





    [appdelegate.navigationController presentModalViewController:picker animated:YES];
    [appdelegate.navigationController.navigationBar setHidden:NO];
    [picker release];
}

`

Ответ 1

У меня была такая же проблема, и, похоже, это ошибка, связанная с конкретными настройками UIAppearance. Это полностью исчезает, когда я удаляю настройку фоновых изображений UISearchBar.

Ответ 2

Вы должны использовать: Поскольку presentModalViewController устарел в iOS 6.

[appdelegate.navigationController presentViewController:picker animated:YES completion:nil];

вместо

[appdelegate.navigationController presentModalViewController:picker animated:YES];

Ответ 3

Я также столкнулся с этой же проблемой, но, наконец, решил ее.

Закройте xcode и перезапустите систему, он будет работать.

Ответ 4

попробуйте это,

 [self presentModalViewController:picker animated:YES];