0

iOSで以下のコードを使用して、フォトライブラリから画像を選択しました。この画像を別のビューで表示する必要があります。どうすればいいですか?

//delegate methode will be called after picking photo either from camera or library
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [self dismissViewControllerAnimated:NO completion:nil];
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    NSArray *theViewControllers = [self.tabBarController viewControllers];

    [imgview setImage:image]; //set in image view

    [self performSegueWithIdentifier:@"NextView" sender:nil];
}

次のビューで画像を表示するために以下のコードを試しましたが、機能しませんか?

//delegate methode will be called after picking photo either from camera or library
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [self dismissViewControllerAnimated:NO completion:nil];
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    NSArray *theViewControllers = [self.tabBarController viewControllers];

    //[imgview setImage:image]; //set in image view
    ImageViewController *adjViewController = (ImageViewController *)[theViewControllers objectAtIndex:0];
    [adjViewController.imageview1 setImage :image]; 

    [self performSegueWithIdentifier:@"NextView" sender:nil];        
}
4

1 に答える 1

1

UIImage *image(imagePickerControllerメソッドから) をそのビュー コントローラーにグローバルにしてから、それを渡すことができますprepareForSegue

例えば:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"NextView"]) {
        ImageViewController *vc = [segue destinationViewController];
        [vc setImage:image];
    }
}

次に、次のImageViewController.hようなものが必要です。

@interface ImageViewController : UIViewController {
    UIImage *image;
}
@property (nonatomic, retain) UIImage *image;

そして、それを .m で合成し、画像をimageViewin に設定しますviewWillAppearprepareForSegue hereのドキュメントを読むことができます。

于 2013-03-18T09:59:52.433 に答える