Как создать портретное поведение UISplitViewController в альбомной ориентации? - PullRequest
1 голос
/ 15 ноября 2010

Я пытаюсь найти решение, которое я видел реализованным в некоторых приложениях для iPad, где то, что кажется UISplitViewController, не отображает основной вид, пристыкованный влево в горизонтальной ориентации.Вместо этого поведение точно такое же в альбомной ориентации, как и в портретной, с UIBarButtonItem в левой части от UIToolbar в верхней части экрана, в результате чего появляется UIPopoverController с видом контроллера основного вида.В нем представлены некоторые пункты меню, которые при выборе, по-видимому, запускают новые классы UIViewController, полученные в подробном представлении.

Приложение, над которым я работаю, должно использовать как можно больше возможностей экрана.и наличие основного вида с опциями меню, пристыкованными к левой стороне, не добавляет особой ценности;на самом деле это мешает приложению.

Так что на самом деле я пытаюсь сделать это в два раза:

  1. Подавить закрепленный основной вид в альбомной ориентации
  2. Естьвыбор строки (опция меню) в главном представлении загружает новый класс UIViewController, полученный в подробном представлении.

Я видел примеры каждого из них, соответственно:

  1. http://vimeo.com/13054813 (скрытие корневого представления UISplitViewController)
  2. http://bit.ly/aypcr0 (пример кода MultipleDetailViews от Apple)

Тем не менее, я не могу заставить их работать вместе.

Причиной использования этого подхода является то, что у меня есть несколько классов UIViewController, которые я хочу отображать при выборе соответствующей опции меню.Я мог бы просто создать их экземпляр и добавить их представления в существующий подробный вид, и они будут отображаться нормально.Проблема в том, что ни один из методов жизненного цикла UIViewController никогда не вызывается, кроме viewDidLoad (например, viewWillAppear:, viewDidUnload и т. Д.).Это также включает в себя изменения ориентации, и это большая проблема для приложения.Кажется, что единственный класс UIViewController, полученный как UIViewController, это когда он добавляется как подпредставление UIWindow приложения или в класс контейнера (например, UINavigationController или UISplitViewController).

Я иду по правильному пути с UISplitViewController, или есть лучшее решение?

Заранее спасибо за вашу помощь!

Джастин

1 Ответ

3 голосов
/ 15 ноября 2010

Это хорошая замена UISplitViewController, в которой есть нужные вам функции (и даже больше). Это прямая замена для реального UISplitViewConroller.

http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad

...