我有一个主要细节应用程序。我列出了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];
}
我做错了什么?任何帮助将不胜感激。
答案 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
即将来临nil
或path
中没有图片。首次检查imgData
是否有valur or nil
。然后显示你的形象,
[UIImage imageWithContentsOfFile:self.fpath]