0

2 つのビューを持つ iOS アプリケーションを作成しようとしています。最初のビューには、カメラとライブラリの 2 つのボタンがあります。ライブラリを選択すると、カメラロールにアクセスします。写真を選択して、別のビューで開きたい。今まで私はこの関数を書いています

-(IBAction) getPhoto:(id) sender {
    UIImagePickerController * picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;

    if((UIButton *) sender == choosePhotoBtn) {
        picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    } else {
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    }

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

}   


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [picker dismissViewControllerAnimated:YES completion: Nil];
    imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}

同じビューで私の画像を開いてください。この画像を別のビューで開くにはどうすればよいですか?

4

3 に答える 3

1

あなたはそのようなことをすることができます

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    [picker dismissViewControllerAnimated:YES completion:^{
        YourSeconViewController *svc = [[UIViewController alloc] initWithNibName:@"YourSeconViewController" bundle:nil];
        svc.imageView.Image = image;
        [self presentViewController:svc animated:YES completion:nil];
    }];
}
于 2013-01-25T14:56:15.697 に答える
0

同じViewControllerの別のビューに画像を表示するのは簡単です。viewControllerに新しいビューへの参照があると仮定して、次のように使用します。

 NewImageView.image = ...    

むしろ、画像を別のViewControllerに渡したいという意味だと思います。

これを行うには、メソッドから新しいviewControllerへの移行を開始する必要がありますimagePickerController:didFinishPickingMediaWithInfo:

新しいViewControllerで、設定できるパブリックプロパティを宣言する必要があります。

@property (monatomic, strong) UIImage* Image;

新しいViewControllerに移行する前に、そのプロパティを設定できます。新しいView ControllerのviewWillAppearでは、そのプロパティを使用してimageViewのコンテンツを設定します。

移行方法は、アプリのデザインによって異なります。たとえば、Segueを使用できます。この場合、でSegueを開始し、でdidFinishPickingMediaWithInfo:新しいViewControllerのプロパティを設定できますprepareForSegue。または、新しいVCを直接作成することもできます。

  MyCustomViewController* viewController = [[MyCustomViewController alloc] init];

   //pass the image ref to the new view controller here
  ViewController.image = image;

   //modally present, no navController
  [self presentViewController:viewController animated:YES];

   //alternatively, push via a nav controller
  [self.navigationController pushViewController:viewController animated:YES];
于 2013-01-25T15:19:16.843 に答える
0

私が提案する手順は次のとおりです。

  1. できれば xib ファイルを使用して、View Controller サブクラスを宣言したことを確認し、その中にイメージ ビューがあることを確認してください。
  2. ナビゲーション コントローラーを使用していない場合は、作成してウィンドウのルート ビュー コントローラーにします。
  3. ビュー コントローラーをプッシュし、そのイメージ ビューのイメージを設定するイメージで設定します。
于 2013-01-25T14:51:26.007 に答える