2013-09-28 10 views
0

Итак, я создал до сих пор 2 текстовых поля, которые текстовые поля подключены к почтовому композитору и все, что пользователь пишет в них, это то, что появляется в почтовом композиторе, однако я не знаю, как это сделать то же самое для UIImageView, я хочу, чтобы пользователь мог выбрать изображение или сделать снимок, и который будет автоматически добавлен в почтовый композитор.Прикрепить изображение к электронной почте

@interface xyzViewController() 

@end 

@implementation xyzViewController 


- (IBAction)savedata:(id)sender; { 
NSString *savestring = _mytextview.text; 
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:savestring forKey:@"savedstring"]; 
[defaults synchronize]; 

NSString *savestring1 = _mytextview1.text; 
NSUserDefaults *defaults1 = [NSUserDefaults standardUserDefaults]; 
[defaults1 setObject:savestring1 forKey:@"savedstring1"]; 
[defaults synchronize]; 

} 

- (IBAction)loaddata:(id)sender; { 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSString *loadstring = [defaults objectForKey:@"savedstring"]; 
[_mytextview setText:loadstring]; 
[label setText:loadstring]; 

NSUserDefaults *defaults1 = [NSUserDefaults standardUserDefaults]; 
NSString *loadstring1 = [defaults objectForKey:@"savedstring1"]; 
[_mytextview1 setText:loadstring1]; 

} 

- (IBAction)dismiss:(id)sender { 
[sender resignFirstResponder]; 
} 
- (IBAction)dismiss1:(id)sender { 
[sender resignFirstResponder]; 
} 


- (IBAction)takePhoto:(UIButton *)sender { 

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.allowsEditing = YES; 
picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

[self presentViewController:picker animated:YES completion:NULL]; 

} 

- (IBAction)selectPhoto:(UIButton *)sender { 

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.allowsEditing = YES; 
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

[self presentViewController:picker animated:YES completion:NULL]; 


} 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; 
self.imageView.image = chosenImage; 

[picker dismissViewControllerAnimated:YES completion:NULL]; 

} 

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 

[picker dismissViewControllerAnimated:YES completion:NULL]; 

} 

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

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

- (IBAction)sendButton:(id)sender { 
MFMailComposeViewController *mailContoller = [[MFMailComposeViewController alloc]init]; 
[mailContoller setMailComposeDelegate:self]; 
NSString *email = @"[email protected]"; 
NSString *email1 = @"[email protected]"; 
NSArray *emailArray = [[NSArray alloc]initWithObjects:email, email1, nil]; 
NSString *message = [@[_mytextview.text, _mytextview1.text] componentsJoinedByString: @"\n"]; 
[mailContoller setMessageBody:message isHTML:NO]; 
NSData *data = UIImagePNGRepresentation(_image); 
[mailContoller addAttachmentData:data 
         mimeType:@"image/png" 
         fileName:@"image.png"]; 
[mailContoller setToRecipients:emailArray]; 
[mailContoller setSubject:@"IT WORKS!"]; 
[self presentViewController:mailContoller animated:YES completion:nil]; 
} 

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
[[self mytextview] resignFirstResponder]; 
} 

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


@end 

ответ

3

Конечно, вы можете прикрепить изображение к сообщению, если вы используете MFMailComposeViewController класс.

Вам просто нужно выяснить, как использовать его API "addAttachmentData: mimeType: fileName:".

This related question might provide the answer you're looking for.

+0

это то, что из приложения, я хочу, чтобы пользователь мог выбрать, какое изображение они прикрепляют, не предопределяет его, извините, если все это звучит глупо, я новичок в этом. – avi

+0

Вы бы хотели, чтобы ваш пользователь выбирал изображение, которое он хочет отправить * до *, вы вызываете MFMailComposeViewController. Самый простой способ выбрать изображение - через UIImagePickerController (здесь есть учебник, в котором говорится об этом) (http://www.appcoda.com/ios-programming-camera-iphone-app/), и как только у вас есть изображение, вы хотите отправить сообщение, создать представление о создании почты ([и вот еще один учебник, в котором говорится об этом] (http://iphonedevsdk.com/forum/tutorial-discussion/43633-quick-tutorial-on-how-to-add- mfmailcomposeviewcontroller.html)). Надеюсь, вы на правильном пути сейчас! –

+0

Большое вам спасибо, пробуйте это сейчас. – avi

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