Казалось бы, у меня проблема со временем с тем, чего я пытаюсь достичь.
Я хочу реализовать следующее.
- Пользователь появляется на экране (контроллер представления) и готов «заблокировать» выбор
- Значок блокировки/разблокировки находится в правом верхнем углу панели навигации.
- Пользователь щелкает значок, чтобы заблокировать
- Отображается окно UIAlert, подтверждающее, что пользователь хочет заблокировать свой выбор
- Пользователь подтверждает
- Пользователю предоставляется другое представление, позволяющее ввести PIN-код.
- Если они нажмут кнопку «Отмена», закройте контроллер представления PIN-кода, и состояние блокировки останется разблокированным.
- Если они нажмут «Отправить», закройте контроллер модального представления PIN-кода.
- Значок в правом верхнем углу должен измениться на значок «Заблокировано».
Кажется, все работает, за исключением того, что значок и состояние не обновляются должным образом, поскольку может показаться, что как только пользователь получает контроллер модального представления PIN-кода, код просто продолжает выполняться, в котором статус «Блокировка» остается как «Разблокировано» поскольку пользователь не ввел свой PIN-код и не нажал «Отправить», что изменит статус «Блокировка»?
Могут ли обработчики завершения «приостановить» состояние до тех пор, пока пользователь не отобразит модальное окно, после чего введет PIN-код, а затем отправит свой PIN-код... и помните, что пользователь также может нажать «Отмена», если он хочет больше не блокировать по какой-либо причине?