Who is calling your updateDatePicker
method?
The problem is that in its implementation you try to get the cell with cellForRowAtIndexPath:
which may, or may not return a cell depending on the timing, the scrolling position, etc:
Return Value
An object representing a cell of the table or nil if the cell is not visible or indexPath is out of range.
You should update the picker when returning the corresponding cell in the tableViewDataSource
, that is inside your tableView:cellForRowAtIndexPath:
, which will be called lazily by the table view only when needed.