UIImage没有在DetailViewController的第一个实例中加载

时间:2013-01-10 09:36:45

标签: iphone ios uiimageview master-detail

我有一个主要细节应用程序。我列出了MasterViewController tableview中应用程序文档文件夹中的所有图像。单击每个tableview项,我将图像加载到具有UIImageView的DetailViewController中。我面临的问题是,当我单击tableview项时,图像不会在第一个实例中加载。我只是在DetailViewController中看到消息“详细视图内容在这里”。如果我回去再试一次,它会正常工作。这是第一次图像不会加载。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
 if (!self.detailViewController) {
    self.detailViewController = [[PtmDetailViewController alloc] initWithNibName:@"PtmDetailViewController" bundle:nil];
}
//NSDate *object = _objects[indexPath.row];

NSData *imgData = [NSData dataWithContentsOfFile:self.fPath];
UIImage *thumbNail = [[UIImage alloc] initWithData:imgData];
self.detailViewController.imgViewer.image = thumbNail;
[self.navigationController pushViewController:self.detailViewController animated:YES];
}

我做错了什么?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

似乎detailViewController的视图没有时间加载。所以你要将图像设置为nil UIImageView(它尚未初始化)。

尝试将属性UIImage *thumb添加到detailViewController,然后在detailViewController的viewDidLoad添加

imgViewer.image=self.thumb;

并在tableView:didSelectRowAtIndexPath:更改

UIImage *thumbNail = [[UIImage alloc] initWithData:imgData];
self.detailViewController.imgViewer.image = thumbNail;

UIImage *thumbNail = [[UIImage alloc] initWithData:imgData];
self.detailViewController.thumb = thumbNail;

答案 1 :(得分:0)

我想,第一次self.fpath即将来临nilpath中没有图片。首次检查imgData是否有valur or nil。然后显示你的形象,

[UIImage imageWithContentsOfFile:self.fpath]