我目前正在尝试将图像数据从一个导航控制器上的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,在那里图片将显示较小的视图。
希望这有点澄清,感谢您的耐心等待!
答案 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方法中设置该属性(假设您正在使用故事板)