Чуваки из этого святого святилища,
Новая проблема! Мне нужно получить UIImageView из другой .XIB.
Позвольте мне поместить это в код, чтобы было проще:
1)
-(UIImage *)grabScreenImage{
//screen = IBOutlet for the UIImageView
UIGraphicsBeginImageContext(self.screen.frame.size);
[(CALayer *)self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSLog(@"PASSED BY THE PHOTO DUDES");
return image;
}
2)
-(UIImage *)takeGraphScreenImage{
//shouldBeGraphViewController = IBOutlet for the other UIViewController
//shouldBeGraph = IBOutLet for the UIImageView in the ShouldBeGraphViewController
UIGraphicsBeginImageContext(shouldBeGraphViewController.shouldBeTheGraph.frame.size);
[(CALayer *)shouldBeGraphViewController.shouldBeTheGraph.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsGetCurrentContext();
return image;
}
(1) работает отлично, я делаю снимок и отправляю его по электронной почте, но (2) - нет.
Я просто скопировал, вставил и изменил некоторые параметры, чтобы они могли использоваться другими, но это дает мне массу ошибок.
3) - (IBAction) sendMail {
MFMailComposeViewController *mailComposer = [[MFMailComposeViewController alloc]init];
UIImage *curretScreen = [[self takeGrabScreenImage]retain];
UIImage *graphScreen = [[self takeGraphScreenImage]retain];
if ([MFMailComposeViewController canSendMail]){
NSLog(@"ENTERED THE GOOD PART OF THE IF");
mailComposer.mailComposeDelegate = self;
[mailComposer setSubject:@"MY SCREENSHOT TEST"];
[mailComposer addAttachmentData:UIImagePNGRepresentation(curretScreen) mimeType:@"image/png" fileName:@"SCREENSHOT"];
[mailComposer addAttachmentData:UIImagePNGRepresentation(graphScreen) mimeType:@"image/png" fileName:@"SCREENSHOT-02"];
//NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//NSString* documentsDirectory = [paths objectAtIndex:0];
/*for (NSString *x in [self.photoLocations allKeys]){
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:x];
UIImage *item = [UIImage imageWithContentsOfFile:fullPath];
[mailComposer addAttachmentData:UIImagePNGRepresentation(item, 0.5) mimeType:@"image/jpeg" fileName:
}*/
} else { ... }
[mailComposer setMessageBody:@"PUT YOUR MESSAGE HERE" isHTML:NO];
[self presentModalViewController:mailComposer animated:YES];
[mailComposer release];
[curretScreen release];
}
Мне просто нужно сделать скриншоты из обоих UIImageViews (из двух UIViewControllers) и отправить их по электронной почте, часть электронной почты завершена, и первый снимок экрана тоже сделан, но второй снимок экрана нет. Даёт мне такие ошибки:
Mon May 16 21:02:46 FGringo EmailSending[1036] <Error>: CGContextSaveGState: invalid context 0x0
Mon May 16 21:02:46 FGringo EmailSending[1036] <Error>: CGContextSetAlpha: invalid context 0x0
Помогите мне, пожалуйста! (