Я понял это. Я прокручивал до конца uitableview на viewDidAppear, но если tableView был пуст, консоль отладчика выглядела бы так: CoreAnimation: ignoring exception: -[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:]: row (-1) beyond bounds (0) for section (0).
Это потому, что я прокручивал строку на indexPath = [messages count] - 1
, где messages - источник данных таблицы , Я подумал, что все в порядке, так как он не падал, но когда после этого я нажал на навигационную панель, навигационная панель вернулась назад, но tableView остался. Weird. Ну, я исправил исключение, полностью закомментировав метод viewDidAppear. Я мог бы также добавить некоторую логику, чтобы проверить, являются ли сообщения пустыми, перед прокруткой вниз таблицы, но прокрутка работает не совсем так, как я хочу. Он показывает tableView, а затем прокручивает вниз. Я хочу, чтобы он прокручивался до конца tableView еще до появления tableView, как это делает приложение iPhone Messages (для обмена текстовыми сообщениями). И я хочу вспомнить полосу прокрутки справа, чтобы показать, что вид прокручивается вниз.