我有一个我不明白的图像传输问题。 我想在用户执行时在另一个控制器上显示UIImageView的UIImage 一个“长按手势”。将显示另一个控制器,但不会显示我传输的图像。
按钮通过模态故事板segue与第三个控制器连接。在那里,用户能够捕获图像。在“ok”时,控制器切换回第一个,捕获的图像将显示在UIImageView中。没有问题,直到那里。 为了实现对其他控制器的长按手势指南,我将手势放到故事板并将按钮连接到它。如果用户执行手势,则将执行以下功能
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([[segue identifier] isEqualToString:@"toPreview"]){
PreviewViewController *pvc = (PreviewViewController *)[segue destinationViewController];
[pvc setImage:signatureView.image];
}
}
signatureView是一个UIImageView,用于显示用户捕获的图像(在本例中为签名)。 “setImage:(UIImage *)”函数是我尝试过的众多可能性之一。
以下是应显示图像的控制器代码
@interface PreviewViewController : UIViewController
@property(nonatomic, retain) IBOutlet UIImage *previewImage;
@property (weak, nonatomic) IBOutlet UIImageView *previewImageView;
- (void) setImage:(UIImage *)image;
@end
@implementation PreviewViewController
@synthesize previewImage;
@synthesize previewImageView;
- (void) setImage:(UIImage *)image {
previewImage = image;
previewImageView.image = previewImage;
[previewImageView setNeedsDisplay];
}
...
正如我已经说过的,我尝试了很多可能性,但没有在previewImageView中显示传递的UIImage。我试图直接从第一个控制器写下previewImageView的图像,我传递了第一个控制器的完整UIImageView,...
我不明白我的错。有谁能够帮我? 我正在使用XCode 4.2和iOS 5 SDK
本
答案 0 :(得分:0)
您无法调用[pvc setImage:signatureView.image];
,因为调用prepareForSegue:
时,signatureView不存在。
您可以传递图片的名称并在viewWillAppear
中设置。
- (void)viewWillAppear {
[super viewWillAppear];
[[self signatureView] setImage: [UIImage imageNamed: imageName]];
}
答案 1 :(得分:0)
我认为在iOS开发中的视图控制器之间传递数据称为协议或@protocol。我不想成为那些说“参考”的人之一。但这就是我的所作所为。欢呼声