Я знаю, что это вопрос прошлого года, но, хотя я думаю, что нашел причину, я все еще пытаюсь найти хорошее решение без взлома для решения этой проблемы.
Если вы работаете на iPad:
После инициализации сначала вызывается viewDidLoad мастера splitViewController, а затем viewDidLoad объекта Detail.
Если вы попытаетесь поместить инициализатор модального окна в viewDidLoad Мастера, то, похоже, ничего не произойдет: это потому, что viewDidLoad Detail выполнился после viewDidLoad вашего модального представления, в результате чего ваше модальное представление было скрыто.
Точка останова, указывающая класс модального представления, я вижу, что он вводит initWithNibName в модальном представлении. Я не использую ARC, и здесь я предполагаю, что ваше модальное представление не освобождается до тех пор, пока программа не закроется - модальное представление все еще там, но нет никакого способа добраться до него.
В iPhone:
Не обращайте на это внимания, потому что НЕТ splitView Controller для iPhone. Фактически, проект Universal splitViewController по умолчанию обрабатывает представление Master и Detail как отдельные страницы. Поэтому при инициализации приложения все, о чем вам нужно беспокоиться, это Master viewDidLoad.
Вот почему в универсальном проекте нажатие модального представления в viewDidLoad работает так, как задумано в эмуляторе iPhone, но НИКОГДА в эмуляторе iPad.
Обратите внимание, что это применимо только на этапе viewDidLoad; если вы вставляете модальное представление ПОСЛЕ viewDidLoad в главное окно, модальное представление работает как задумано.