NStimer выпуск в Какао-Touch

Мое приложение должно показывать временное сообщение, поэтому я создал Toast как android сам. Это хорошо работает только для одного тоста. Я использую NSTimer, чтобы скрыть сообщение. Если я показываю более одного тоста, таймер становится проблемой. Только последний добавленный тост становится скрытым, другие не скрываются. Как я могу спрятать все тосты?

Код:

Удалить функцию:

-(void)removeToast
{
 NSLog(@"removed");
 [self.view removeFromSuperview];
}

Таймер запуска:

timer = [NSTimer scheduledTimerWithTimeInterval:(4.0f) 
                                         target:self  
                                       selector:@selector(xxxx)
                                       userInfo:nil repeats:NO];

Я написал это выше в отдельном NSObject класс и создал объект. Мне нужно уточнить, как запустить два NSTimer одновременно или отслеживать все NSObjects,

Создание объекта в viewcontroller @property(nonatomic,strong)Toast *toast;

1 ответ

Нет необходимости хранить время таймера в иваре для вашей цели. Используйте параметр userinfo: для передачи представления, которое вы хотите скрыть при срабатывании таймера, например:

[NSTimer scheduledTimerWithTimeInterval:(4.0f) 
                                     target:self  
                                   selector:@selector(xxxx)
                                   userInfo:yourView repeats:NO];

Затем в вашем селекторе получите представление из userInfo и скройте его. Вы можете найти рабочий образец здесь, строка 37.

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