我有两个视图控制器:产品视图控制器和详细视图控制器。 当用户点击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)
}
我连接了插座,将图像复制到项目中,并确保我的所有拼写都正确无误。当我运行它时,图像视图保持空白并且从未加载图像。我无法弄清楚为什么不,这对我来说都很完美。以上代码是否有任何缺陷?
答案 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]];