我有一个表格视图,当选择一行时,它将带您到详细信息页面。详细信息页面上有图像视图。当尝试选择行时,我试图从表视图中为图像视图设置图像,但是当选择行并且出现详细视图时,除了白页外什么都没有。
像这样:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
GRSBandDetailViewController *detail = [[GRSBandDetailViewController alloc]initWithNibName:@"GRSBandDetailViewController" bundle:nil];
if (indexPath.row == 0)
{
[detail.bandImage setImage:[UIImage imageNamed:@"AbovetheUnderground.png"]];
[self.navigationController pushViewController:detail animated:YES];
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
这是GRSBandDetailViewController的.h文件:
@interface GRSBandDetailViewController : UIViewController
{
IBOutlet UIImageView *bandImage;
}
@property (nonatomic, strong) UIImageView *bandImage;
@end
最佳答案
发生这种情况是因为在第一次调用-[UIViewController view]
的过程中,视图是延迟加载的。因此,当您尝试设置图像时,detail.bandImage
为零。
在UIImage
初始化程序中或通过属性提供GRSBandDetailViewController
。然后将bandImage.image
设置为viewDidLoad
中此属性的值。