2013-06-13 3 views
0

Я пытаюсь повторить код Apple «Отправка почтового сообщения», но интерфейс композиции электронной почты не появляется ... просто пустой экран. Думаю, я сделал это правильно. Ничего не делал с раскадрой, так как нет никаких действий или выходов. Не изменил ни файл делегата .h, ни .m. Ниже приведен код. Очень новое для кодирования. Что я пропустил?Интерфейс почтовой композиции не отображается?

.h файл

#import <UIKit/UIKit.h> 
#import <MessageUI/MessageUI.h> 

@interface ViewController : UIViewController <MFMailComposeViewControllerDelegate> 

@end 

.m файл

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

-(void)displayComposerSheet 
{ 
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
    picker.mailComposeDelegate = self; 

    [picker setSubject:@"Hello from New Zealand!"]; 

    // Set up the recipients. 
    NSArray *toRecipients = [NSArray arrayWithObjects:@"[email protected]", 
          nil]; 
    NSArray *ccRecipients = [NSArray arrayWithObjects:@"[email protected]", nil]; 
    NSArray *bccRecipients = [NSArray arrayWithObjects:@"[email protected]", 
           nil]; 

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

    // Attach an image to the email. 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"IMG_3639" 
                ofType:@"jpg"]; 
    NSData *myData = [NSData dataWithContentsOfFile:path]; 
    [picker addAttachmentData:myData mimeType:@"image/jpg" 
        fileName:@"IMG_3639"]; 

    // Fill out the email body text. 
    NSString *emailBody = @"Beautiful New Zealand!"; 
    [picker setMessageBody:emailBody isHTML:NO]; 

    // Present the mail composition interface. 
    [self presentViewController:picker animated:YES completion:nil]; 
} 

// The mail compose view controller delegate method 
- (void)mailComposeController:(MFMailComposeViewController *)controller 
      didFinishWithResult:(MFMailComposeResult)result 
         error:(NSError *)error 
{ 
    [self dismissViewControllerAnimated:YES completion:nil]; 

} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 
+1

где вы называете это 'displayComposerSheet'? –

+1

u нужно позвонить вашему методу, чтобы показать mailcomposer .. – samfisher

ответ

1

Если вы не возражаете. Где вы вызываете метод -(void)displayComposerSheet. ?

Это не называется правильным. Если да, то дайте мне знать ваш журнал. Используйте точки останова.

+0

Я думаю, что я просто слишком устал прошлой ночью. Я включил IBAction для displayComposerSheet, и он работал нормально. Благодарю. – user2353906

+0

Добро пожаловать ........ –

Смежные вопросы