2013-07-31 7 views
1

Я создаю нечто похожее на UISplitView на iPad. Но панель «мастер» имела бы кнопки, а не список.Я хотел бы иметь UITabBarController, без UITabBar

Панель деталей будет иметь не более 7 различных экранов (соответствующих кнопкам в главной панели).

Итак, что мне нужно сделать, это создать UITabBarController в InterfaceBuilder (без какой-либо иной причины, чем его легко увидеть). Но тогда каждая кнопка нажимает в «главном» представлении, чтобы сообщить контроллеру панели вкладок показать другую панель.

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

Спасибо за любой совет.

ответ

1

Я сделал то же самое, но мне не удалось скрыть панель вкладок чистым и законным способом.

Итак, я решил изменить подход: использовать UITabBar в раскадровке только как «заполнитель» для соединений и заполнить viewControllers массив моего SplitController, то при загрузке мой SplitController, нагрузки программно в UITabBarController из раскадровки, копия содержимое массива viewControllers и, наконец, отклонить UITabBarController.

С таким подходом вы должны управлять только переход между ВК и другой, но вы будете иметь:

  • возможность установить viewControllers из раскадровки (что это лучшая часть имхо)
  • возможность использовать tabBarItem в качестве значка для контроллера меню

Таким образом, чтобы быть более схематичны:

  • Создать свой экземпляр SplitController с NSArray* viewControllers экземпляра переменной
  • можно добавить метод initWithTabBarController: экземпляра к вашему SplitController и передать программно загруженный tabBarController экземпляр.
  • в методе initWithTabBarController, заполните массив viewControllers, используя tabBarController.viewControllers. Теперь вы можете «уничтожить» свой экземпляр контроллера панели табуляции, он вам не нужен
  • вам нужно управлять переходом с одного контроллера на другой самостоятельно. Для этого я предлагаю вам использовать основной вид с контроллером контейнера.

Я думаю, что этот подход хорош, чтобы иметь чистую и читаемую раскадровку, я обновляю все свои проекты, чтобы использовать ее.

С уважением Fabio

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