Я сделал что-то похожее на amoshaviv, его совет здоров. Я сделал это немного по-другому, и я дам немного больше информации.
Я создал собственный класс MyInitialViewController, производный от UIViewController, и сделал его начальным контроллером представления.
В файле раскадровки я создал модальные сегменты с соответствующими именами для всех (в моем случае трех) возможных «реальных» контроллеров первого вида.
В классе MyInitialViewController я реализовал
- (void)viewDidAppear:(BOOL)animated;
метод, чтобы сначала проверить, на какой вид переключаться, а затем сделать правильный
[self performSegueWithIdentifier:@"NameOfSegue" sender:self];
По сути, это делает MyInitialViewController не более чем переключателем, выполняемым при его отображении. Сначала я попытался сделать это при загрузке, потому что мне все равно, нужно ли на самом деле видеть это представление, но это не сработало, а viewDidAppear -.
Чтобы сделать это визуально гладким, я попробовал следующее. В свойствах сегментов я отключил анимацию. Вид, который я оставил пустым, дал цвет фона, соответствующий цвету изображения при запуске.