Откройте UIImagePicker из UIImageView - PullRequest
1 голос
/ 09 июля 2011

Я пишу простое приложение, в котором у меня есть UIImageView, который при щелчке на нем должен открыть UIImagePickerController, а после выбора изображения просто назначить это изображение для UIImageView

, который я запустил с помощью sub-классификация UIImageView и предоставление ему touchesBegan, который откроет ImagePicker.

Мой вопрос таков: поскольку только UIViewController может вызывать presentModalViewController для показа imagePicker, как мне это сделать?

Это плохой дизайн - иметь ссылку на представление в качестве контроллера (хотя, я думаю, мое изображение - это подпредставление).Так что я не знаю, как передать сообщение контроллеру.

Другой вариант - сначала обнаружить прикосновения в контроллере, но только тогда я смогу определить, является ликасание было на изображении, чтобы фактически проверить, находится ли касание в рамке просмотра изображения.Этот подход кажется мне неуклюжим ... Неужели я упускаю что-то очевидное?

Будем очень признательны за любые мысли о том, какой метод выбрать, или за любые предложения о лучшем методе!Спасибо!

Ответы [ 3 ]

1 голос
/ 09 июля 2011

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

0 голосов
/ 09 июля 2011

Способ Objective C для этого состоит в том, чтобы объявить пользовательский делегат, который реализует ваш контроллер представления. Так что для вашего случая это будет один метод, например, viewTapped. Пусть ваш пользовательский класс вызывает этот метод делегата при каждом нажатии.

Затем заставьте ваш контроллер представления реализовать этот делегат и запустить модальный контроллер представления, когда вызывается метод делегата.

0 голосов
/ 09 июля 2011

Когда вы запускаете подкласс UIImageView, передайте ссылку на контроллер представления, который загружает представление изображения.

Затем ваше прикосновение внутри UIImageView может вызвать presentModalViewController с этим контроллером представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...