在单独的类中将图像添加到UIImageView

时间:2014-02-16 21:02:27

标签: objective-c uiimageview

我有两个视图控制器:产品视图控制器和详细视图控制器。 当用户点击UITableView上的单元格时,它将转换到Detail View Controller。 Detail View Controller的UIImageView名称为imageEq。我正在尝试在Products View Controller中设置图像。这就是我的做法:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"pushDetailView"])
    {
        DetailViewController *dvc;
        UIImage *pic = [UIImage imageNamed:@"HorseImage.png"];
        [dvc.imageEq setImage:pic];
        NSLog(@"Pic should be set");
}
........ (non relevant code)
}

我连接了插座,将图像复制到项目中,并确保我的所有拼写都正确无误。当我运行它时,图像视图保持空白并且从未加载图像。我无法弄清楚为什么不,这对我来说都很完美。以上代码是否有任何缺陷?

2 个答案:

答案 0 :(得分:1)

如果你将DetailViewController指针替换为下面的代码,它应该适合你。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"pushDetailView"])
    {
        UIImage *pic = [UIImage imageNamed:@"HorseImage.png"];

        [[segue destinationViewController] setDetailImage:pic];

        NSLog(@"Pic should be set");
}

希望这有帮助, 谢谢吉姆。

修改

在DetailViewController的头文件中添加以下属性

@property (strong, nonatomic) UIImage *detailImage;

在DetailViewController的.m文件的viewDidLoad中,添加以下内容

self.imageEq.image = _detailImage;

我希望这个更新的答案有帮助。

答案 1 :(得分:1)

同时更改

[[segue destinationViewController] setImageEq:pic];

[[segue destinationViewController] setImageEq:[[UIImageView alloc] initWithImage:pic]];