2013-07-22 2 views
0

Я заполняю таблицуView из данных в plist. Когда я выбираю ячейку, я использую prepareForSegue и indexPathForSelectedRow для вывода данных plist в контроллер подробного представления (DVC). В DVC у меня есть UIImageView, который загружает определенное изображение с помощью оператора switch, в зависимости от строки, выбранной в таблицеView. Все это работает правильно.UIImage/tapgesturerecognizer/Новый вид

Я хочу добавить tapGestureRecognizer в свой UIImageView, чтобы кран на изображении в моем DVC выводил новый контроллер вида. В этом представлении контроллера у меня есть UIImageView на UIScrollView. Я хочу, чтобы изображение из DVC загрузилось в следующий контроллер вида, чтобы я мог масштабировать и панорамировать изображение.

Я использую раскадровки. Я убедился, что UIImageView в моем DVC активировал взаимодействие с пользователем, и я добавил к нему tapGestureRecognizer с помощью перетаскивания. Затем я создал segue из tapGestureRecognizer в свой последний контроллер представления и запустил его в симуляторе. При нажатии на изображение в DVC загорается последний контроллер.

Что я не могу понять, так это то, как сообщить UIImageView в контроллере последнего представления, чтобы отображать изображение с DVC, которое всегда отличается от строки, выбранной в таблицеView.

Я надеюсь, что это имеет смысл, и у кого-то может быть представление, как я могу это сделать.

+1

Есть ли код, который вы можете поделиться показывая, что вы пробовали? –

+0

Я даже не знаю с чего начать. Мой вопрос больше подходит, возможно ли это, и если да, пожалуйста, укажите мне в правильном направлении. Я начинаю думать, может быть, зритель фото может быть путем. Я сейчас изучаю это. – bronyaur

ответ

0

Я понял. Чтобы повторить, мне нужно было передать информацию с plist в контроллер подробного представления на основе строки, выбранной в виде таблицы. Затем в контроллере подробного представления я хотел иметь возможность использовать изображение и открыть изображение в новом контроллере. Изображение в контроллере подробного представления было задано выбранной строкой, поэтому было не просто создание третьего контроллера представления и установка изображения.

Данные передаются от plist к контроллеру подробного представления, поскольку строка выбирается в виде таблицы. То есть быть достигнуто здесь:

tableviewcontroller.m

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    { 
     NSIndexPath *indexPath = [[self tableView] indexPathForSelectedRow]; 
     NSDictionary *bighornData = _bighornTable[indexPath.row]; 
     BighornDetailViewController *bhdvc = (BighornDetailViewController *) [segue destinationViewController]; 
     bhdvc.bighornData = bighornData; 
     bhdvc.bighornZoneNumber = indexPath.row; 
    } 

Изображение создается в контроллере представления подробно с помощью номера, сохраненного в bighornData. Когда я понял, что номер был сохранен там даже после того, как контроллер детализированного представления был загружен, нужно было передать эту переменную на конечный контроллер, чтобы можно было установить изображение.

detailviewcontroller.m

-(void)prepareForSegue:(UIStoryboardSegue *) segue sender:(id)sender { 
     ImageViewController *ivc = (ImageViewController *) [segue destinationViewController]; 
     ivc.bighornZoneNumber = _bighornZoneNumber; 

    } 
Смежные вопросы