Почему awakeFromNib не вызывается при повторном посещении представления? - PullRequest
1 голос
/ 06 апреля 2011

Я хотел бы знать, существует ли метод, эквивалентный awakeFromNib.

Проблема, с которой я сталкиваюсь, заключается в следующем:
У моего приложения есть 2 вида, а у 2-го вида есть подкласс (UIview), который я использую для рисования.
Я использую таймер, который вызывается изawakeFromNib для анимации рисунка.

- (void) awakeFromNib
{
    timer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:selfselector:@selector(ReDraw) userInfo:nil repeats:YES];
}

- (void) ReDraw
{
    i++;
    [self setNeedsDisplay];
}

Теперь, когда я возвращаюсь к своему первому виду и возвращаюсь к этому виду, рисунок все еще включен (awakeFromNib больше не вызывается).
Таймерне останавливается, когда я возвращаюсь к первому виду.Я хочу, чтобы таймер остановился, когда я вернулся, и чертеж перезапустился, когда я снова посетил второй вид.

Методы viewdidLoad и initWithFrame не работают внутри подкласса.

Спасибо

1 Ответ

1 голос
/ 06 апреля 2011

awakeFromNib, viewdidLoad и initWithFrame - все они вызываются на этапе инициализации объекта.Если объект уже создан, эти методы больше не будут вызываться.Вы можете заставить вид нарисовать себя, используя setNeedsDisplay метод вида.

...