UIImage не се зарежда в първия случай в DetailViewController

Имам приложение за основен детайл. Изброявам всички изображения от папката с документи на приложението в табличния изглед на MasterViewController. При щракване върху всеки елемент на tableview зареждам изображението в DetailViewController, който има UIImageView. Проблемът, с който се сблъсквам, е, че изображенията не се зареждат в първия случай, когато щракна върху елемент на табличен изглед. Просто виждам съобщението „Съдържанието на подробния изглед отива тук“ в 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];
}

какво правя грешно Всяка помощ ще бъде оценена.


person Xavi Valero    schedule 10.01.2013    source източник


Отговори (2)


Изглежда, че изгледът на detailViewController няма време за зареждане. Така че настройвате изображението на nil UIImageView (все още не е инициализирано).

Опитайте да добавите свойство UIImage *thumb към detailViewController и след това подробно viewDidLoad add на ViewController

imgViewer.image=self.thumb;

И във вашата tableView:didSelectRowAtIndexPath: промяна

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

to

UIImage *thumbNail = [[UIImage alloc] initWithData:imgData];
self.detailViewController.thumb = thumbNail;
person Michał Zygar    schedule 10.01.2013

Предполагам, че за първи път или self.fpath идва nil, или няма изображение в това path. Проверете дали imgData има valur or nil за първи път. След това покажете вашето изображение,

[UIImage imageWithContentsOfFile:self.fpath]
person arthankamal    schedule 10.01.2013