Как обновить соответствующую копию глобальной переменной на основе условия в Swift? - PullRequest
0 голосов
/ 26 апреля 2020

Итак, у меня есть 3 глобальные переменные в контроллере представления (назовем их A, B, C), которые мне нужно обновить, чтобы сохранить состояние выбора фильтра, когда приложение перемещается к этому контроллеру и от него. Я делю контроллер представления фильтра между двумя другими контроллерами представления, так как они оба ссылаются на него. Однако им необходимо использовать собственный набор из 3 глобальных переменных, чтобы обеспечить сохранение и очистку состояния этих переменных на основе различных критериев.

По сути, у меня есть 2 похожих страницы с одинаковым интерфейсом расширенного фильтра. Когда фильтры применяются, я сохраняю состояние на 3 из этих переменных, чтобы восстановить их состояние в пользовательском интерфейсе, когда они вызываются снова. Тем не менее, состояние фильтра VC1 сохраняется в течение всего жизненного цикла приложения, в то время как состояние фильтра VC2 сохраняется только тогда, когда пользователь находится на этой странице. Если пользователь уходит, состояние выбора фильтра VC2 сбрасывается. Учитывая, что мне нужно управлять двумя копиями глобальных переменных для обеих, каков наиболее оптимальный подход к сохранению отдельных состояний в фильтре V C?

На данный момент я собираюсь проверить базовое условие if-1018 * if, чтобы увидеть, с какой страницы ссылаются фильтры, чтобы определить версию глобальных переменных для чтения / записи. Каждый раз, когда на эти глобальные переменные ссылаются (13 экземпляров), я делаю проверку экрана условия условия для чтения или записи из соответствующей глобальной переменной V C. Обратите внимание, что пользовательский интерфейс фильтра представляет собой отдельную полноэкранную страницу со своим собственным V C, который вызывается при нажатии кнопки, поэтому для восстановления состояния выбора VC2 в filterV C, когда пользовательский интерфейс фильтра отклонен, и При повторном открытии я должен установить sh это состояние в глобальной переменной, чтобы к нему можно было обратиться в filterV C. Однако этот подход не кажется самым оптимальным, хотя он и работает, поэтому я ищу лучший способ go об этом.

Для простоты см. Ниже:

* Контроллеры представления 1008 *

2: VC1, VC2

Отдельные копии 3 глобальных переменных, используемых VC1, VC2: A, B, C

1 Контроллер представления пользовательского интерфейса общего фильтра: фильтр V C

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