Один простой способ сделать это - создать класс CountDown и протокол CountDownDelegate.
Класс CountDown будет реагировать обрабатывать таймер и вызвать метод делегата, когда обратный отсчет достигнет 0. countDownDidReachesZero:(CountDown *)countDown
Тогда ваш UIViewController (или UITableViewController) держать список обратного отсчета в массиве и соответствует CountDownDelegate.
- (void)countDownDidReachesZero:(CountDown *)countDown
{
NSMutableArray *array = [self.countdowns mutableCopy];
[array removeObject:countDown];
self.countdowns = array; //if property is set with copy flag
[self.tableView reloadData]; // get index and remove cell with effect would be better
}
- (BOOL)textFieldShouldReturn:(UITextField*)textField
{
NSMutableArray *array = [self.countdowns mutableCopy];
[array addObject:[[CountDown alloc] init]];
self.countdowns = array;
[self.tableView reloadData]; //or add the cell with effect
return YES;
}
Для обновления detailLabel.text вы также можете сделать это с помощью протокола CountDownDelegate. Хорошая вещь должна состоять в том, чтобы иметь только один статический NSTimer, который обновляет все countDown.
Сотовый - это вид, а не место для хранения данных, таймеров и т. Д. В вашей модели должна быть модель, которая должна подавать представление, ячейку таблицы в вашем случае. – rckoenes
Вы можете отображать таймер на этикетке, и вам нужно перезагружать таблицу каждую секунду. –
Просьба пояснить, что вы подразумеваете под «добавлением таймера в эту ячейку в качестве субтитров». Вы хотите показать, сколько времени у них осталось, прежде чем оно уничтожит себя? – RyanR