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