开发者

Transfer image across view controllers

On my iPhone app, I have two viewControllers (firstViewController, secondViewController), on firstViewController the user can select a photo from the camera roll and it then displays it in an imageView, however I need to also display it in secondViewController but have no idea how to.

Can you also please explain your answers in-depth as I am fairly new to objective-C

Here's my code:

firstViewController.h

#import <UIKit/UIkit.h>

@interface firstViewController : UIViewController
<UIImagePickerControllerDelegate, UINavigationControllerDelegate>
{
    UIImageView *theImageView;
}

@property (nonatomic, retain) IBOutlet UIImageView *theImageView;
-(IBAction)selectExistingPicture;

@end

firstViewController.m

#import "firstViewController.h"
#import "secondViewController.h"

@implementation firstViewController

@synthesize theImageView

-(IBAction) selectExistingPicture
{
    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
    {
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentModalViewController:picker animated:YES];
        [picker release];
    }
}

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage : (UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
    theImageView.image = image;
    [picker dismissModalViewControllerAnimated:YES];
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)  picker
{
    [picker dismissModalViewControllerAnimated:YES];
}

-(IBAction)switchSecondViewController {

    SecondViewController *v开发者_C百科iewcontroller = [[SecondViewController alloc]     initWithNibName:@"SecondViewController" bundle:nil];
    [self presentModalViewController:viewcontroller animated:YES];
    [viewcontroller release];
}
// Default Apple code

@end

There's not much in secondViewController so I won't bother posting that code.


Have a method in your second view controller of the type

-(void)setImage:(UIImage *)image

In the method below after you create a viewcontroller call the method with the image as shown

-(IBAction)switchSecondViewController {
    SecondViewController *viewcontroller = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    [self presentModalViewController:viewcontroller animated:YES];
    [viewcontroller setImage:theImageView.image]
    [viewcontroller release];
}


You need to declare a property in second view so you can set the image from your first view some thing like this:

secondImageView is the property in secondView and you have to set it

-(IBAction)switchSecondViewController {

    SecondViewController *viewcontroller = [[SecondViewController alloc]     initWithNibName:@"SecondViewController" bundle:nil];
     viewcontroller.secondImageView.image = firstViewImage;
    [self presentModalViewController:viewcontroller animated:YES];
    [viewcontroller release];
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜