0

iphone開発初心者です。ビューにボタンを作成しました。ボタンをクリックすると、iPhone からフォトライブラリが読み込まれます。選択した画像をメールで添付したいと思います。MFMailComposerView で画像を添付する方法がわかりません。

どうすればこれを達成できますか、

ここに私のコードは、

-(IBAction) Pictures:(id)sender
{ 
    self.imgpicker = [[UIImagePickerController alloc] init];
    self.imgpicker.delegate = self;
    self.imgpicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:self.imgpicker animated:YES];
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img1    editingInfo:(NSDictionary *)editInfo {
    [[picker parentViewController] dismissModalViewControllerAnimated:NO]; 
    UIView *view = [[UIView alloc] init];   (This view for displaying the images)
    imageview = [[UIImageView alloc] initWithImage:img1];
    [imageview setFrame:CGRectMake(0, 0, 320, 420)];
   [self.view addSubview:imageview];
    [view release];

  UIBarButtonItem *rightbutton = [[UIBarButtonItem alloc] initWithTitle:@"Email"   style:UIBarButtonItemStyleBordered target:self action:@selector(rightbutton)];
  self.navigationItem.rightBarButtonItem = rightbutton;
  [rightbutton release];

   }

  -(void) rightbutton
  {
      [self emailImage:(UIImage *)image];( how to pass the image to mail view)
  }

  - (void)emailImage:(UIImage *)image
  {
      picker = [[MFMailComposeViewController alloc] init];
      picker.mailComposeDelegate = self;
      [picker setToRecipients:[NSArray arrayWithObjects:@"aaaa@nnn.com",nil]];
      NSData *data = UIImagePNGRepresentation(image);
      [picker addAttachmentData:data mimeType:@"image/png" fileName:@"iPod Library Image"]; 
      [self presentModalViewController:picker animated:YES];
      [picker release];
    }

私を助けてください。

ありがとう。

4

1 に答える 1

1

コントローラー クラス (imageThatWasPicked など) で UIImage インスタンス変数を設定し、から画像を取得するときにそのインスタンス変数を設定する必要があります-imagePickerController:didFinishPickingImage:editingInfo:。を呼び出すときに、このインスタンス変数を参照できます-emailImage:

注意として、あなたはリークしています。イメージピッカーデリゲートメソッドでimageView何をしようとしているのかわかりません。おそらく、コードの割り当てと解放を完全viewに取り除くことができます。view

于 2010-04-03T12:06:39.290 に答える