未设置UIImageView图像



我有一个TableView,它包含从名为arryData的NSArray中获取的单元格文本的名称列表。在didSelectRowAtIndexPath中,我有:

NextViewController *nextController = [[NextViewController alloc] initWithNibName:@"NextViewController" bundle:nil];
    [self.navigationController pushViewController:nextController animated:YES];
    [nextController changeProductText:[arryData objectAtIndex:indexPath.row]];    

在NextViewController中,我有:

- (IBAction) changeProductText:(NSString *)str{
    NSLog(@"whosthere%@", str);
    self.title = str;
    if ( [str isEqualToString: @"Row 1 Name"]) {
        lblProductTxt.image = [UIImage imageNamed:@"row1name.png"];
        job.text = @"Sr. Minister & Elder";
        NSLog(@"Row 1 Name");
        emailaddress = @"Row1Email@att.net";
           } 
...
}

当我点击第1行的名称时,我的控制台显示"whothererow1name",另一个NSLog会触发"第1行名称",但图像和文本都不会显示。我使用IB和XIB文件构建了这个。我确保Class匹配,并且UILabel和UIImageView的IBOutlet都已连接。确实如此。

为什么这不起作用?

更新:
刚刚在6.1和7.0设备上进行了测试。6.1运行良好,7.0不显示图像。

这不起作用的原因是,在调用changeProductText时,标签和图像视图将为null:因为nextController的视图尚未加载。我不明白的是为什么它能在iOS 6中工作。你确定你在iOS 6中就是这样做的吗?这样做的方法是将一个字符串(以及您想要的任何其他内容)传递给您在nextController中创建的属性,并在viewDidLoad中填充UI元素。

UIImageView是否已初始化并显示在屏幕上?图像文件真的存在吗?通过在代码中的赋值点设置断点,确保正在创建的UIImageView和UIImage都不是nil。

最新更新