Ios UIImage和prepareforSegue没有´;我无法传递图像
我想在第二张照片上看到这张照片,但我看不到任何照片,我不知道为什么。我这样做: FirstClassViewController.m:Ios UIImage和prepareforSegue没有´;我无法传递图像,ios,uiimageview,uiimage,segue,Ios,Uiimageview,Uiimage,Segue,我想在第二张照片上看到这张照片,但我看不到任何照片,我不知道为什么。我这样做: FirstClassViewController.m: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"ShowCover"]) { MovieImageViewController *photo =
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"ShowCover"]) {
MovieImageViewController *photo = [segue destinationViewController];
photo.cover.image = [UIImage imageNamed:@"helloWorld.jpg"];
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self cover];
}
SecondClassViewController.m:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"ShowCover"]) {
MovieImageViewController *photo = [segue destinationViewController];
photo.cover.image = [UIImage imageNamed:@"helloWorld.jpg"];
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self cover];
}
cover是我在SecondClassViewController上创建的一个属性UIImageView,我猜“cover”是您的MovieImageViewController类的一个图像视图属性?如果是这样,就不要这样做
应将其他视图控制器视图视为专用视图
相反,请在MovieImageViewController类中设置图像属性。在prepareForSegue方法中设置,然后在MovieImageViewController的ViewWillDisplay:animated方法中,将图像安装到“cover”图像视图中。问题解决了
编辑:澄清
将以下内容添加到MovieImageViewController类的头文件(.h)中:
@interface MovieImageViewController
//This property is the line to add
@property (nonatomic, strong) UIImage *coverImage;
//your other stuff goes here.
@end
然后在.m文件中:
@implementation MovieImageViewController
- (void) viewWillAppear: animated
{
[super viewWillAppear: animated];
//Add the following code to your viewWillAppear:animated method
if (self.coverImage != nil)
self.cover.image = self.coverImage;
}
@end
调用
prepareforsgue:sender:
时,尚未设置destinationViewController的出口。这意味着您的photo.cover
属性仍然为零
您可以在MovieImageViewController
上创建UIImage
属性,然后执行以下操作:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"ShowCover"]) {
MovieImageViewController *photo = [segue destinationViewController];
photo.image = [UIImage imageNamed:@"helloWorld.jpg"];
}
}
在-viewDidLoad
方法中:
- (void)viewDidLoad
{
[super viewDidLoad];
self.cover.image = self.image;
}
但是self.image不起作用,因为它不是一个属性和photo.image不应该是因为image它不是一个属性,属性是cover,它在movieimage中,这就是为什么我说“你能做的就是创建一个UIImage属性…”为什么UIImage属性不是零?只是因为它不是一个出口?或者与视图层次结构有关?它最初为零,但随后您将其设置为
prepareforsgue
(photo.image=…
)。因此,在-viewdiload
上,您将cover.image
设置为self.image
是的,cover是我的MovieImageVC的UIImageView属性,但我不理解您的意思。对不起。。