Storyboard, UIViewController и UISplitViewController

Пытаюсь сделать приложение на основе раскадровки для iPad. В нем мне нужно сделать переход от начального экрана (UIViewController) к главному экрану (UISplitViewController), а затем к полноэкранному просмотру (снова UIViewController).

Я видел ряд обсуждений в Интернете (по крайней мере, несколько - на stackoverflow), в которых говорилось, что UISplitViewController не может быть использован в приложении на основе Storyboard иначе, чем в качестве RootViewController. Некоторые потоки содержат обходные пути, и есть также альтернативные splitview (https://github.com/mattgemmell/MGSplitViewController), чтобы справиться с этим.

Но я не могу понять, почему документация Apple утверждает совершенно противоположное. Вот ссылка на главу из библиотеки Apple по iOS 5.0. В ней говорится:


Создание контроллера разделенного представления с помощью раскадровки

Чтобы добавить контроллер разделенного представления в раскадровку вашего приложения, выполните следующие действия

  1. Откройте основную раскадровку вашего приложения.
  2. Перетащите контроллер разделенного представления из библиотеки. Это также создаст контроллеры представления для двух панелей контроллера разделенного представления.
  3. Для каждого из содержащихся контроллеров представления контроллера разделенного представления используйте инспектор Identity, чтобы задать имя класса контроллера представления.

Чтобы представить интерфейс разделенного представления, сделайте одно из следующих действий:

  • Отобразите его в качестве первой сцены, выбрав сцену и установив флажок флажок "Is Initial View Controller" в инспекторе атрибутов.
  • Отобразите его из другой сцены, добавив к ней модальный переход.
  • Отобразить его программно, вызвав метод performSegueWithIdentifier:sender: для инициирования модального сегвея.

Я пытался сделать это разными способами, но подходы, описанные в последних двух утверждениях, так и не сработали. И modal segue, и performSegue... завершаются с известной ошибкой:

"*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a Split View Controllers modally..."

Кто-нибудь может объяснить это? Это ошибка в XCODE/iOS 5.0 или ошибка в документации?

С уважением, Петр

15
задан LU RD 28 January 2012 в 12:27
поделиться