如何传递图像数据?

时间:2014-12-07 19:32:26

标签: ios objective-c uiimageview

我目前正在尝试将图像数据从一个导航控制器上的UIImageView传递到另一个导航控制器的UIImage视图。

基本上,我有一个collectionviewcontroller,当我按下图像时我会有图像,它会将它传递给我的导航控制器1,在那里我有一个UIImageView。我把它管理到这一步。但是,在我的导航控制器1上,我有一个导航栏按钮,它将带我到navigationcontoller 2,它也有一个UIImageView,这是我想从navigationcontoller 1到2传递相同的图像,但选择将取决于我有什么图像在集合视图中选择。

我如何编码?

对任何不准确之处表示道歉,我刚开始学习如何编程,因此我的解释可能含糊不清。如果您需要更多信息,请告诉我。

提前致谢!

**

  

编辑:

**

我的CollectionViewController.h

@property (strong, nonatomic) NSArray *photoImages;

CollectionViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

UICollectionViewCell *cell = (UICollectionViewCell *)sender;
NSIndexPath *indexPath = [self.collectionView indexPathForCell:cell];

PictureViewViewController *pictureViewViewController = (PictureViewViewController *)segue.destinationViewController;
pictureViewViewController.photoImage = [UIImage imageNamed:[self.photoImages objectAtIndex:indexPath.row]];

}

PictureViewController.h

@property (strong, nonatomic) UIImage *photoImage;
@property (strong, nonatomic) NSArray *photoImages;

PictureViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
DetailedPhotoViewViewController *detailedPhotoViewViewController = [segue destinationViewController];
detailedPhotoViewViewController.detailPhotoImage = photoImage;

}

DetailPhotoViewController.h

@property (strong, nonatomic) UIImage *detailPhotoImage;

在PictureViewController中,我正在努力制定正确的prepareForSegue方法,以便在我的DetailPhotoViewController中出现相同的UIImage。

我有一个带有图片的集合,我可以在点击图片时打开它。这会将图像传递给PictureViewController,它将以全屏显示。在PictureViewController上,我在导航栏中有一个Button,它指出了Notes,它应该将我传递给DetailedPhotoViewController,在那里图片将显示较小的视图。

希望这有点澄清,感谢您的耐心等待!

2 个答案:

答案 0 :(得分:1)

如果我错了,请纠正我......我想你的意思是你想要将UIImageView中呈现的UIImage从一个UIViewController传递到另一个UIVmageController,同时将新的UIImage推入UINavigationController堆栈......

您所要做的就是为第二个ViewController设置一个UIImage属性,如

var myImage:UIImage?

之后,您可以将UIImage从旧Controller传递到第二个,同时将第二个ViewController推送到UINavigationControllers堆栈中。

if let theCont:SecondViewController = storyboard?.instantiateViewControllerWithIdentifier("SecondViewController") as? SecondViewController {
            theCont.myImage = UIImage(named: "imageFromOldController")
            self.navigationController?.pushViewController(theCont, animated: true)
        }

这只是一种方法......我认为最容易解释

答案 1 :(得分:1)

另一张海报的建议是合理的,但他迅速发布了他的代码。从您问题中的标签来看,您正在使用Objective-C。

在Objective-C中,等效的是在目标视图控制器中设置一个属性:

@property (nonatomic, strong) UIImage* myImage

...并在prepareForSegue方法中设置该属性(假设您正在使用故事板)