Булева переменная, которая оценивает, исчезло или нет текущее представление?

Я использую NSTimer, который запускается с 15 секунд в приложении с несколькими вариантами ответов. Приложение имеет два возможных результата. Время может уменьшиться до нуля, и отобразится представление некорректного ответа, и в этом случае таймер становится недействительным / останавливается, а статическое целое число для его времени сбрасывается до 15 для следующего вопроса.

Однако другой возможный результат заключается в том, что ответ выбирается до истечения времени, и в этом случае я использую метод viewWillDisappear для запуска дальнейших действий. Моя проблема в том, что я не могу сбросить статическое целое время для этого метода, потому что он объявлен в методе выше. Я попытался объявить это в файле.h, но есть проблемы, потому что целое число является статическим.

Я хочу знать, есть ли логическое выражение, которое оценивает, исчезло ли текущее представление, потому что таким образом я могу сохранить все в одном методе и иметь возможность сбрасывать статическое целое число на время.

1 ответ

Во-первых, если ваша переменная таймера локальна для класса, она не должна быть объявлена ​​как static, Во-вторых, у вас есть две возможности для решения вашей проблемы из viewController: viewWillDisappear а также viewDidDisappear, Наконец, если вам нужно знать, изменилось ли свойство представления, вы можете сделать это с помощью метода KVO. Проблема, с которой вы столкнетесь, состоит в том, что если представление действительно исчезло, объект представления может быть тостом к тому времени, когда вы ссылаетесь на него. Без дополнительной информации невозможно определить, с какой проблемой вы действительно столкнулись.

Кроме того, как только вы сделаете недействительным таймер, вы больше не сможете его использовать. Вы должны создать новый таймер.

Другие вопросы по тегам