As Zaph said, tableView:cellForRowAtIndexPath: is called whenever the table wants to display a cell for a given pointer path, so if you don't get an index pointer with a row of 0, it means that you probably do what prevents this cell from showing.
My first suggestion was to examine your tableView:heightForRowAtIndexPath: method and 1) check if it will be called using the index path string 0, and 2) make sure something> 0 is returned.
The fact that you see it on iOS 8 does not necessarily mean that something native is broken, but instead may suggest that some of your logics that contribute to the above methods depend on changes in iOS 8. iOS 8 dropped the way I did the text size calculations, so maybe something less obvious, as a result, returns a height of no higher than 0.
source share