Можно ли наблюдать за методами в Swift или просто за свойствами? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть приложение, в котором я пытаюсь добавить своего рода экскурсию, в которой я провожу пользователя от одной функции к другой.Что я хочу сделать, так это позволить пользователю взаимодействовать с различными элементами интерфейса, и когда они выбирают правильный элемент, тур переходит к следующему шагу.Мне действительно трудно найти способ сделать это.Я пытаюсь подойти к этому двумя способами, но я не могу понять, как этого добиться, и при этом я не могу быть уверен, что будет лучше.Два варианта, над которыми я работал:

  1. Создание подкласса UIView, который каким-то образом перенесет все пользовательские взаимодействия в представление, которое находится непосредственно за ним, но регистрирует ихпоэтому, когда будет предпринято правильное действие, он может вызвать следующий шаг.

  2. Найти способ добавить наблюдателя к UIResponder (обычно UIButton, но иногда UITableViewCell или другой тип), который сообщит программе о завершении касаний, что позволит программе затем проверить, выполнил ли пользователь правильное задание.

Вариант 1 достаточно прост, еслиэто просто кнопка, но она кажется более сложной, когда это UITableView или UIPickerView.

Вариант 2 - это тот, к которому я склоняюсь, если только я смогу найти способ добавить наблюдателя в метод (скорее всего, touchesEnded:with:) таким же образом, каким они могут быть добавлены в свойства.Таким образом, я мог видеть, когда происходит взаимодействие, и проверять, было ли оно правильным.Конечно, я мог бы на самом деле жестко написать код, переходя к следующему шагу в каждом методе, который должен его запускать (если он удовлетворяет условию участия в экскурсии), но это просто плохая практика.

У кого-нибудь есть предложения?Есть ли «правильный» способ сделать одну из этих вещей или третий вариант, который я должен рассмотреть?

...