1

Я сделал костюм класса UIActivity. Мне нравится отправлять электронные письма с вложениями с классом, но я не могу отправлять электронные письма или представлять какие-либо ViewControllers из класса. Я пытаюсь представить почту ViewController с этим:Как я могу отправлять электронные письма из моего пользовательского класса UIActivity?

- (void)prepareWithActivityItems:(NSArray *)activityItems 
{ 
    NSString *subject = [NSString stringWithFormat:@"%@", [self.filePath lastPathComponent]]; 
    NSString *messageBody = [NSString stringWithFormat:@"%@ was extracted with @FilyForiOS, visit", [self.filePath lastPathComponent]]; 
     NSData *attachment = [NSData dataWithContentsOfFile:self.filePath]; 

    MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; 
    mc.mailComposeDelegate = self; 
    [mc setSubject:subject]; 
    [mc setMessageBody:messageBody isHTML:NO]; 
    [mc setToRecipients:nil]; 
    [mc addAttachmentData:attachment mimeType:[[self.filePath lastPathComponent] pathExtension] fileName:[self.filePath lastPathComponent]]; 
    [self presentViewController:mc animated:YES completion:nil]; // Here is the error: No visible @interface for 'MailTo' declares the selector 'presentViewController:animated:completion:' 
} 

Может кто-нибудь сказать мне, как я могу представить ViewController из этого класса?

Я использовал этот код: How can I create a custom UIActivity in iOS?

ответ

1

Извините, что я только сейчас ответить на этот (я знаю, что это был задан вопрос по времени назад) Но вот мой ответ:

#import <MessageUI/MessageUI.h> 

@interface EmailActivity : UIActivity <MFMailComposeViewControllerDelegate> 

@end 

@implementation EmailActivity 

- (NSString *)activityTitle 
{ 
    // Your title 
    return @"Email"; 
} 

- (UIImage *)activityImage 
{ 
    // Your image 
    return [UIImage imageNamed:@"Email"]; 
} 

- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems 
{ 
    return YES; 
} 

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 
{ 
    [self activityDidFinish:YES]; 
} 

- (UIViewController *)activityViewController 
{ 
    MFMailComposeViewController *mc = [[MFMailComposeViewController alloc]init]; 

    if ([MFMailComposeViewController canSendMail]) 
    { 
     NSString *subject = [NSString stringWithFormat:@"%@", [self.filePath lastPathComponent]]; 
     NSString *messageBody = [NSString stringWithFormat:@"%@ was extracted with @FilyForiOS, visit", [self.filePath lastPathComponent]]; 
     NSData *attachment = [NSData dataWithContentsOfFile:self.filePath]; 

     [mc setSubject:subject]; 
     [mc setMessageBody:messageBody isHTML:NO]; 
     [mc setToRecipients:nil]; 
     [mc addAttachmentData:attachment mimeType:[[self.filePath lastPathComponent] pathExtension] fileName:[self.filePath lastPathComponent]]; 

     mc.mailComposeDelegate = self; 

     return mc; 
    } 
    else 
    { 
     return nil; 
    } 
} 

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