Почему контроллер разделенного представления всегда должен быть корнем любого интерфейса, который вы создаете? - PullRequest
2 голосов
/ 01 мая 2011

В руководстве Apple для разработчиков говорится: «Контроллер разделенного представления всегда должен быть корнем любого интерфейса, который вы создаете» ( см. Здесь ). Мне было любопытно, если бы кто-нибудь знал, почему они решили это. У меня есть приложение на основе навигатора вкладок, и имеет смысл, чтобы содержимое одной из вкладок было представлено в разделенном виде. Почему Apple будет против такого дизайна? Заранее спасибо за ваши ответы.

-Макс

PS Я не ищу способы поместить контроллер разделенного представления в контроллер навигатора вкладок (это я могу понять, даже если код выглядит неаккуратно). Мне более любопытно, если у кого-нибудь есть идея, почему Apple хмурится.

Ответы [ 3 ]

2 голосов
/ 02 мая 2011

Я не думаю, что это обязательно решение пользователя, так как это техническое ограничение.UIKit делает ряд предположений о том, как будут использоваться UIViewControllers.Включая идею о том, что только один экземпляр UIViewController имеет вид, видимый в данном окне в любой момент времени.Теперь, когда Apple имеет доступ к реализации, они могут создавать исключения для своих собственных классов «контроллера представления контейнера» (UINavigationController, UITabBarController и UISplitViewController).Мы не можем точно сказать, в каком особом случае эти контроллеры или что им нужно было сделать для правильного отображения вложенных контроллеров подчиненного представления, но одно из следствий этого заключается в том, что UITabBarController и UISplitViewController не предназначены для использования, кроме как в качестве корневогопросмотр контроллера окна.Попытка вложить их в другие контроллеры представления контейнера может привести к неожиданному или ненадежному поведению.

Я попытался охватить эти ограничения на использование контроллеров представления и некоторые возможные альтернативы здесь: http://blog.carbonfive.com/2011/03/09/abusing-uiviewcontrollers/ Надеюсь, что это какой-тоиспользовать для вас, но я боюсь, что единственный надежный способ получить пользовательский интерфейс, который вы, похоже, ищете, реализовать свой собственный стиль отображения разделенного представления в представлении одного UIViewController.

0 голосов
/ 02 мая 2011

Apple всегда придавала большое значение последовательному использованию элементов пользовательского интерфейса. Работа всех приложений одинаковым образом помогает пользователю сразу понять, как работает приложение, даже если они никогда не видели его раньше. Создание концептуальной иерархии контейнеров контроллера представления имеет большой смысл, когда вы пытаетесь помочь пользователю предсказать поведение.

0 голосов
/ 01 мая 2011

Пожалуйста, проигнорируйте мой ответ:

Потому что вы не можете изменить размеры подпредставлений UISplitViewController касаниями?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...