Есть ли другой способ, кроме presentModalViewController, отображать UITabBarController только на части экрана?

#cocoa-touch #ipad #uitabbarcontroller #presentmodalviewcontroller

#cocoa-touch #iPad #uitabbarcontroller #presentmodalviewcontroller

Вопрос:

У меня есть UITabBarController отображение нескольких экранов настроек в моем приложении. Я хочу, чтобы они отображались только на части экрана по соображениям компоновки. В полноэкранном режиме списки становятся нечитаемыми (слишком широкими), на странице всего несколько элементов управления, из-за чего страница кажется очень пустой, а кнопки панели вкладок находятся далеко от содержимого (закон Фиттса).

Использование presentModalViewController с UIModalPresentationFormSheet стилем дает мне нужный размер. Я делаю это поверх пустого фона, поскольку в моем случае не имеет смысла отображать что-либо за ним. Поверх всего этого отображается «реальная» рабочая область с другой presentModalViewController в полноэкранном режиме.

Это работает, но похоже на взлом. Одна из проблем заключается в том, что я не могу заставить фон за диалогом настроек перемещаться при переходе в полноэкранный режим с UIModalTransitionStyleFlipHorizontal стилем.

TL; DR

Могу ли я встроить UITabBarController не полноэкранный режим в другой «фоновый» вид? Я не могу найти никакой информации о том, как бы я это сделал.

Ответ №1:

Могу ли я встроить UITabBarController не в полноэкранном режиме в другой «фоновый» вид? Я не могу найти никакой информации о том, как бы я это сделал.

Почему бы вам не попробовать это?

  1. Создайте представление контейнера того размера, который вы хотите, чтобы имел контроллер панели вкладок.
  2. Создайте контроллер панели вкладок.
  3. [containerView addSubview:tabBarController.view];