iPhone 3.0의 in-app 메일을 사용하여 이미지를 보낼 수있는 부분이 있습니다. 카메라 롤에서 이미지를 선택하면 완벽하게 작동하지만 카메라에서 전자 메일로 이동하려고하면 (예 : UIImagePickerController에서 MFMailComposeViewController로) 응용 프로그램이 충돌합니다. iPhone 3.0에서 MessageUI를 사용하여 카메라에서 이미지를 보내려고하면 응용 프로그램이 충돌합니다.
이
카메라 실행하기위한 코드입니다- (BOOL)startCameraPickerFromViewController:(UIViewController*)controller usingDelegate:(id<UIImagePickerControllerDelegate, UINavigationControllerDelegate>)delegateObject
{
if ((![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) || (delegateObject == nil) || (controller == nil))
return NO;
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.delegate = delegateObject;
picker.allowsImageEditing = NO;
[controller presentModalViewController:picker animated:YES];
return YES;
}
을 그리고 이것은 카메라와 함께 마무리 코드입니다 :
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
NSLog(@"Called finish picking");
self.imageForSending = theImage;
// NSData *imageData = UIImageJPEGRepresentation(image, 1);
[[picker parentViewController] dismissModalViewControllerAnimated:YES];
[(ChannelTwoAppDelegate *) [[UIApplication sharedApplication] delegate] recoverNavigationBar];
[self performSelector:@selector(sendEmail) withObject:nil afterDelay:0.45];
[picker release];
}
그리고이 메일을 보내기위한 코드입니다
- (void) sendEmail {
[(ChannelTwoAppDelegate *) [[UIApplication sharedApplication] delegate] hideNavigationBar];
if (![MFMailComposeViewController canSendMail])
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"שגיאה", @"") message:NSLocalizedString(@"לא ניתן לשלוח מייל ממכשיר זה", @"")
delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[alert release];
}
else
{
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[[controller navigationBar] setTintColor:[UIColor colorWithRed:120.0/255.0 green:0 blue:0 alpha:1.0]];
NSData *imageData = UIImageJPEGRepresentation(imageForSending, 1);
[controller addAttachmentData:imageData mimeType:@"image/jpg" fileName:@"storyImage.jpg"];
[controller setSubject:@""];
[controller setToRecipients:[NSArray arrayWithObject:@""]];
[self presentModalViewController:controller animated:YES];
[controller release];
}
}
이메일 주소와 제목이 덜 관련되어 있으므로 지워버 렸습니다.
전자 메일의 현재 모니터 뷰 컨트롤러에서 충돌이 발생합니다. 다시 -이 정확한 코드는 카메라 롤에서 이미지를 선택할 때 완벽하게 작동합니다 ...
Help? 나는 잠시 동안 이걸로 싸워 왔고 새로운 입력을 사용할 수있었습니다. 감사합니다.