2016-09-09 6 views
1

Я потратил некоторое время на поиск решения, но не нашел его. Я хотел бы создать контроллер панели вкладок с панелью навигации, которая присутствует во всех дочерних представлениях. Из того, что я собираю, иерархия не позволяет этого, поскольку панель вкладок (равная?) Или выше в иерархии, чем контроллер навигации, и поэтому единственной простой реализацией является встраивание каждого дочернего представления контроллера панели вкладок в Навигационный контроллер, например:Пользовательский контроллер панели вкладок с панелью навигации

example gif

мне было интересно, если есть какие-либо технические причины, почему это не было бы возможным программировать пользовательский Tab Bar Controller, который показывает панель навигации. Я не прошу кого-то реализовать это для меня, но поскольку я не нашел никакой библиотеки/существующего примера этого, я хотел бы знать, есть ли какая-либо техническая причина, почему это невозможно, прежде чем я спусти путь к его реализации.

Спасибо за помощь

ответ

1

Даже если я не встречал решения, как ваша, а также, как я всегда был в курсе таких решений, я хотел бы попробовать реализовать и отправили обзор бета-приложение.

Документы говорят, что вы не должны этого делать, и Apple не хочет, чтобы вы это делали, и это может и вызовет проблемы. Но если вы не против, сделайте небольшой взлом: просто не используйте TabBarController.

  1. Положи TabBar на ваш взгляд,
  2. сделать контроллер представления для этого взгляда, TabBar делегат
  3. реагировать на события пользователя на этом TabBar в коде этого вида контроллера.

Я создал решение (несколько лет назад), который был сделан из TabBarController, будучи родителем контроллер представления контроллера представления мастер-деталь. Поскольку было немного сложно установить, я использовал имя библиотеки ISMViewController.

Это выглядело немного взломанным, но было одобрено в обзоре приложения. Я отправил проект в обзор приложения, сразу после создания этих простых сцен, с пустыми кнопками и ярлыками, просто чтобы проверить, с ними все в порядке. Они были. Итак, я начал разрабатывать эту схему контроллера и все еще в App Store.

Если что-то явно не поддерживается в раскадровке, это, скорее всего, не будет распространенным решением или не будет хорошим способом. Но я не думаю, что это абсолютно запрещено. Например, контроллер панели вкладок, а также контроллер основных деталей для iPad должны быть контроллером корневого представления по некоторым причинам.

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

+0

Спасибо за ответ. Я не рассматривал обзор приложения, так как мой первый проект iOS и не знал, что стиль макета будет тщательно изучен. Начиная с Android, я обнаружил, что это не рекомендуется придерживаться таких строгих стандартов дизайна, что позволяет сделать больше творчества в стиле приложения. Услышав, что это может быть наказано, вызывает беспокойство, учитывая, как ограничены типы навигации.Например, наличие 10 корневых опций легко обрабатывается в Android с помощью навигационного ящика, однако контроллер панели вкладок iOS не может содержать 10 элементов без переполнения, что рекомендуется в рекомендациях. – Tom

Смежные вопросы