ImageView将类中的信息传递给其他类

时间:2014-07-11 10:39:30

标签: ios xcode camera uiimageview xib

我使用自定义相机选择器创建了一个应用程序,我尝试将叠加图像从一个类传递到其他类,下面是关于我的代码的更多信息:

使用Storyboard:

UICollectionView加载.plist来自网络的图片,然后使用Segue Identify将信息传递到另一个视图。

在我的第二个视图中,我看到我选择的图像,分享按钮和相机按钮,如果我点击相机按钮加载μ自定义相机视图在单独的.xib,她我想将我的第一个选择的图像传递给UIImageView在.xib

我的代码:

3个控制器的过程是:

来自UITableView

的第一个控制器
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if([@"goToShare" isEqualToString:segue.identifier]) {
        NSIndexPath *index = [self.tableView indexPathForCell:sender];
        [[segue destinationViewController] setImgSelected:(self.loadImage)[index.row]];
    }

}

此处将我的图片设置为NSMutableDictionary *imgSelected;

在我的第二个控制器中,我将信息输入:

- (void)viewDidLoad {

    NSString *url = (self.imgSelected)[@"image"];
    NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:url]];
    imageViewPick.image = [[UIImage alloc] initWithData:data];

    [super viewDidLoad];
}

现在我想从第二个控制器imageViewPick.image将第三个控制器中的相同图像传递到我的imageOverlay.image

点击相机按钮并加载封面垂直.xib

- (IBAction)getPhoto:(id) sender {

    CustomCameraViewController *camController = [[CustomCameraView alloc] initWithNibName:@"CustomCameraView" bundle:nil];
    camController.delegate = self;

    [self presentViewController:camController animated:YES completion:^{

    }];
}

我尝试使用imageViewPick.image

MyFirstView *imgDelegate= (MyFirstView  *)[[UIApplication sharedApplication] delegate];
self.imageOverLay.image = imgDelegate.imageViewPick.image;

但是没有工作,应用程序崩溃。

知道如何将信息从firstClass.m传递给secondClass.m吗?

2 个答案:

答案 0 :(得分:1)

initWithNibName方法返回UIViewController,让我们调用MySecondViewController的实例。将UIImage属性添加到MySecondViewController。然后,在初始化MySecondViewController的实例后,将UIImage属性设置为您想要的图像。 E.g:

MySecondViewController.h

...
@property (nonatomic, weak)UIImage *overlayImage;
...

MyFirstView.m

...
MySecondViewController *secondViewController = [MySecondViewController initWthNibName:<insert name of xib> bundle:<probably nil>];
secondViewController.overlayImage = self.imageOverlay.image;
...

然后,您可以使用MySecondViewController

访问self.overlayImage中的叠加图片

答案 1 :(得分:0)

In&lt; - (IBAction)getPhoto:(id)sender&gt;你必须设置camController.imageOverLAy.image = self.imageViewPick.image;在介绍camController之前。 希望它能帮到你!

[[UIApplication sharedApplication] delegate] returns a pointer to the AppDelegate.