iOS SDK - повторная инициализация UIView с оригинальной конфигурацией - PullRequest
1 голос
/ 21 сентября 2011

Я «свежий» разработчик iOS и пытаюсь решить проблему следующим образом -

Я пытаюсь создать игру и создал UITabBarController с 3 UINavigationController элементами,Один из видов предметов - игровой сеанс - изменяется во время работы (например, появляются / исчезают ярлыки / кнопки и т. Д.).Теперь, когда игра будет завершена, я бы хотел перезагрузить само представление, начиная с конфигурации по умолчанию.

Поскольку [[self view] setNeedsDisplay] не делает этого, мне интересно, как этот процесс должен быть выполнен?Я могу создать метод, который приведёт все объекты в состояние по умолчанию, но я думаю, что это неправильный способ сделать это.

1 Ответ

2 голосов
/ 21 сентября 2011

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

Затем в этом методе просто сбросьте метки и свойства переменных. В качестве побочного эффекта вы можете вызывать этот метод в методах init вашего представления, чтобы не дублировать код состояния по умолчанию.

(Кстати, -setNeedsDisplay не имеет ничего общего с состоянием по умолчанию или чем-либо еще. Он просто помечает представление как грязное, так что его метод -drawRect: вызывается в следующем цикле основного цикла выполнения.)

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