Я работаю над приложением для iPhone / iPad с UISplitView. На левой панели у меня есть таблица, и все ячейки имеют переходы «Показать детали» к контроллерам навигации для правой панели.
Я выполняю длительные вычисления для нового представления после того, как пользователь выбирает параметр в таблице, поэтому у меня есть UIActivityIndicatorView, который я начинаю анимировать в «viewWillAppear». В viewDidAppear я выполняю вычисление, а затем обновляю соответствующие элементы пользовательского интерфейса и останавливаю UIActivityIndicatorView.
На iPhone это работает должным образом: пользователь нажимает элемент в таблице, появляется новое представление, в котором нечего сказать (но отображается небольшой индикатор активности), а через секунду или две оно заполняется нужной информацией.
На iPad это выглядит так, как будто приложение зависает после нажатия на элемент в таблице. Затем данные появятся через несколько секунд. (Не помогает то, что мой тестовый iPad - это mini первого поколения, поэтому он медленнее.) Индикатора активности нет.
При отладке я обнаружил, что viewDidAppear на самом деле вызывается до появления представления. С дисплеем ничего не происходит, пока не вернется метод viewDidAppear. Я видел это с точкой останова, но я также подтвердил это без точек останова, поместив операторы NSLog в начало и конец viewDidAppear.
Так что это плохо выглядит; Интересно, могу ли я что-нибудь сделать с контроллером Segue, View Controller, Navigation Controller или Split View, чтобы заставить его вести себя так, как я хочу?
Заранее спасибо...