проблему. Есть 2 файла: вьюшка, в которой описан интерфейс (для примера взял textfield и кнопку). Там только интерфейс. Все элементы private var, как полагается
И для этой вьюшки контроллер - код справа: просто создается экземпляр вьюшки и назначается на сам экран.
Проблема: допустим, мне надо в контроллере в каком-то методе использовать то, что ввели в textfield. Но из контрллера к этому тексту обратиться не выйдет - ведь сам textfield помечен как private
Что придумал и нагуглил (разные способы):
1. С элемента, инфа от которого нужна (будь это текстфилд с текстом, или значение слайдера или что еще) убирать модификатор private - тогда к нему можно будет обратиться с внешнего контекста (т.е. с контроллера). Но не хочется убирать, ведь все UI-элементы private по идее должны быть
2. Создавать во вьюшке публинчый метод типа getData(), который будет собирать инфу с нужных элементов этой вьюшки. И вызывать метод везде, где эта инфа нужна. Но засорять вьюшку методами не хотелось бы - для этого есть контроллер
Как корректно поступают, подскажите, плиз. Вроде подробно описал. Скрин прилагаю.
Все зависит от твоей архитектуры дальнейшей - это раз. Два - по второму способу - это нормально. Что бы не засорять класс вью, можешь создать протокол-интерфейс для вью.
Ага, понял Спасибо большое!
Обсуждают сегодня