MFMailComposeViewController загружает пустой белый экран - PullRequest
0 голосов
/ 26 апреля 2011

Я тестирую на iPod Touch под управлением ОС 3.1.3

Попытка разрешить пользователям отправлять электронную почту из приложения - но при выполнении следующего кода весь экран просто становится полностью пустым / белым.

Есть идеи, почему это происходит? У меня есть платформа MessageUI в проекте. Я импортирую и делегирую в заголовочный файл:

#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>
<MFMailComposeViewControllerDelegate>

А вот код, довольно стандартный:

if ([MFMailComposeViewController canSendMail]) {
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    [picker setSubject:@"App Feedback"];
    [picker setToRecipients:[NSArray arrayWithObject:@"xyz@gmail.com"]];

    [self presentModalViewController:picker animated:YES];
    [picker release];
    }

А затем у меня есть функция didFinishWithResult, которая закрывает ModalViewController при отправке электронного письма.

Но опять же, все, что я получаю, это пустой белый экран на моем iPod Touch. = /

Спасибо!

Ответы [ 2 ]

0 голосов
/ 26 апреля 2011

Вы можете посмотреть пример кода от Apple: http://developer.apple.com/library/ios/#samplecode/MessageComposer/Listings/Classes_MessageComposerViewController_m.html

- (IBAction) showMailPicker: (id) отправитель {

Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));

if (mailClass != nil) {
        [self displayMailComposerSheet];

    if ([mailClass canSendMail]) {
        [self displayMailComposerSheet];
    }
    else {
        feedbackMsg.hidden = NO;
        feedbackMsg.text = @"Device not configured to send mail.";
    }
}
else    {
    feedbackMsg.hidden = NO;
    feedbackMsg.text = @"Device not configured to send mail.";
}

}

- (Недействительными) displayMailComposerSheet { MFMailComposeViewController * picker = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self;

[picker setSubject:@"Hello from California!"];



NSArray *toRecipients = [NSArray arrayWithObject:@"first@example.com"]; 
NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil]; 
NSArray *bccRecipients = [NSArray arrayWithObject:@"fourth@example.com"]; 

[picker setToRecipients:toRecipients];
[picker setCcRecipients:ccRecipients];  
[picker setBccRecipients:bccRecipients];


NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"jpg"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"image/jpeg" fileName:@"rainy"];


NSString *emailBody = @"It is raining in sunny California!";
[picker setMessageBody:emailBody isHTML:NO];

[self presentModalViewController:picker animated:YES];
[picker release];

} - (void) mailComposeController: (MFMailComposeViewController *) контроллер didFinishWithResult: (MFMailComposeResult) ошибка результата: (NSError *) ошибка {

feedbackMsg.hidden = NO;
// Notifies users about errors associated with the interface
switch (result)
{
    case MFMailComposeResultCancelled:
        feedbackMsg.text = @"Result: Mail sending canceled";
        break;
    case MFMailComposeResultSaved:
        feedbackMsg.text = @"Result: Mail saved";
        break;
    case MFMailComposeResultSent:
        feedbackMsg.text = @"Result: Mail sent";
        break;
    case MFMailComposeResultFailed:
        feedbackMsg.text = @"Result: Mail sending failed";
        break;
    default:
        feedbackMsg.text = @"Result: Mail not sent";
        break;
}
[self dismissModalViewControllerAnimated:YES];

}

0 голосов
/ 26 апреля 2011
if([MFMailComposeViewController canSendMail]){

        MFMailComposeViewController *mail=[[MFMailComposeViewController alloc]init];
        mail.mailComposeDelegate=self;
        [mail setSubject:@"App Feedback"];          
        [mail setMessageBody:@"*your message  content*" isHTML:NO];
        [self presentModalViewController:mail animated:YES];
        [mail release];         
    }

- (void)mailComposeController:(MFMailComposeViewController*)mailController didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
        [self dismissModalViewControllerAnimated:YES];

}
...