2013-10-27 130 views
0

我是相当新的xcode,我目前正在尝试做一个有几个视图控制器的应用程序。我希望其中一个视图控制器将另一个图像(屏幕快照)以PDF格式加载到电子邮件中。视图控制器屏幕拍摄

所以一个视图控制器具有如下代码,以视图

- (void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename 
{ 
// Creates a mutable data object for updating with binary data, like a byte array 
NSMutableData *pdfData = [NSMutableData data]; 

// Points the pdf converter to the mutable data object and to the UIView to be converted 
UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil); 
UIGraphicsBeginPDFPage(); 
CGContextRef pdfContext = UIGraphicsGetCurrentContext(); 


// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData 

[aView.layer renderInContext:pdfContext]; 

// remove PDF rendering context 
UIGraphicsEndPDFContext(); 

// Retrieves the document directories from the iOS device 
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES); 

NSString* documentDirectory = [documentDirectories objectAtIndex:0]; 
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename]; 

// instructs the mutable data object to write its context to a file on disk 
[pdfData writeToFile:documentDirectoryFilename atomically:YES]; 
NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename); 

}

,然后其他视图控制器有希望,它将装载后续代码的瞬间拍摄快速拍摄到电子邮件的正文中,然后发送给任何人。

- (IBAction)showEmail:(id)sender { 
// Email Subject 
NSString *emailTitle = @"Email Title"; 
// Email Content 
NSString *messageBody = @""; 
// To address 
NSArray *toRecipents = [NSArray arrayWithObject:@"[email protected]"]; 

MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; 
mc.mailComposeDelegate = self; 
[mc setSubject:emailTitle]; 
[mc setMessageBody:messageBody isHTML:NO]; 
[mc setToRecipients:toRecipents]; 
[mc setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 

UIImage *myImage = [UIImage imageNamed:@"documentDirectoryFilename.pdf"]; 
NSData *imageData = UIImagePNGRepresentation(myImage); 

[mc addAttachmentData:imageData mimeType:@"image/pdf" fileName:@"documentDirectoryFilename.pdf"]; 

// Present mail view controller on screen 
[self presentViewController:mc animated:YES completion:NULL]; 
} 

- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult: (MFMailComposeResult)result error:(NSError *)error 
{ 
switch (result) 
{ 
    case MFMailComposeResultCancelled: 
     NSLog(@"Mail cancelled"); 
     break; 
    case MFMailComposeResultSaved: 
     NSLog(@"Mail saved"); 
     break; 
    case MFMailComposeResultSent: 
     NSLog(@"Mail sent"); 
     break; 
    case MFMailComposeResultFailed: 
     NSLog(@"Mail sent failure: %@", [error localizedDescription]); 
     break; 
    default: 
     break; 
} 

我遇到的问题是,该文件未找到,不会装入邮件成功。任何帮助将不胜感激。

回答

0

嗨我实际上解决了我遇到的问题,我忘记了在视图控制器头文件中导入其他视图控制器。对不起浪费大家时间。我认为这将是一个非常简单的解决方案。