как вернуть значение в контроллер из многократного использования - PullRequest
0 голосов
/ 24 июня 2011

Конкретный вопрос, основанный на моей реализации:

Вопрос:

  • имеет UIViewController, в котором есть несколько представлений (настроенных в файле XIB)
  • когда что-то происходит в одном из элементов управления на экране здесь (то есть в одном из представлений), как я могу обновить параметр UIViewController одновременно?

Справочная информация:

  • В моем случае у меня есть colorPickerController, и внутри него есть некоторое подпредставление, с которым пользователь взаимодействует с выбранным цветом
  • когда пользователь перетаскивает мышь над одним из подпредставлений, один из других обновляется цветом
  • в чем я не уверен, так это в том, как сохранить основной параметр colorPickerController обновленным до последнего выбранного цвета
  • отсюда возникает вопрос, как обновить / получить доступ к параметру контроллера из одного из представлений внутри контроллера

Ответы [ 2 ]

1 голос
/ 24 июня 2011

Подвид, который пользователь перетаскивает мышью (или пальцем?), Может рассматриваться как некий элемент управления, поэтому в этом случае вы просто используете цель / действие.или может быть делегацией.таким образом, вы будете поддерживать слабую связь между этим подпредставлением и viewcontroller, и это также позволит вам повторно использовать этот же класс (экземпляром которого является подпредставление) в других местах.так, в случае делегирования:

  1. определить протокол:

    @ protocol ColorPickerViewDelegate

    • (void) colorPickerView: (ColorPickerView *)cpView didUpdateWithColor: (UIColor *) newColor;@ end
  2. добавить свойство @property(nonatomic, assign) id<ColorPickerViewDelegate> didUpdateDelegate; для выбора цвета в подкласс UIView.

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

  4. При создании подпредставления выбора цвета установите ваш viewcontroller как didUpdateDelegate этого подпредставления.

  5. совершайте вызовычтобы didUpdateDelegate в соответствующее время в вашей логике обработки касаний в представлении выбора цветов: [didUpdateDelegate colorPickerView:self didUpdateWithColor:someNewColor];

надеюсь, что это то, что вы хотите

0 голосов
/ 24 июня 2011

Полагаю, что в библиотеке управления iOS нет ColorPickerController?Это кастомный контроллер?Пожалуйста, укажите, так что можете ответить соответственно.

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