UIImage не загружается в первый раз в DetailViewController

У меня есть приложение master-detail. Я перечисляю все изображения из папки документов приложения в табличном представлении MasterViewController. При щелчке каждого элемента таблицы я загружаю изображение в 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, а затем в файле detailViewController viewDidLoad добавить

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