In UITableViews, you update the cell's contents on tableView:cellForRowAtIndexPath
. dequeueReusableCellWithIdentifier:
will only get a new cell for you from the cell queue UITableView maintains. It will NOT get the you the currently displayed UITableViewCell.
Source: UITableView docs
Call this method from your data source object when asked to provide a new cell for the table view.
What you should do is maintain a property on your view controller for the counter value.
@property NSInteger counterValue;
Update that property in the method your timer is calling. and then reload your tableView:
self.counterValue--
[self.countdownTableView reloadData]
In your tableView:cellForRowAtIndexPath:, you can do the following:
- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Load cell
...
cell.countDownLabel = [NSString stringWithFormat:@"%d", self.counterValue];
}
This should update the countdown label every time it calls the timer method.