Установка пользовательского размера дизайна для UITabViewController (в раскадровке)

Я хочу изменить приложение, которое в настоящее время имеет UITabBarController в качестве исходного контроллера представления.

Цель состоит в том, чтобы иметь пользовательскую строку состояния в верхней части экрана, которая всегда будет отображаться независимо от того, какая вкладка выбрана. Текущий UITabBarController может не использовать всю высоту экрана:

/----------------------------\
|Custom Status bar (50 px)   |
|                            |
|----------------------------|
|                            |
|----------------------------| ---
|                            |  |
|                            |  |
|View of the selected tab    |  |
|                            |  |
|                            |  |
|                            |  |
|                            |  | 
|                            |  smaller height of the UITabBarController
|                            |  |
|----------------------------|  |
|Tab bar                     |  |
|                            |  |
\----------------------------/ ---

Я использую раскадровки. Я не могу установить (проектный) размер в окне Size Inspector, даже если размер смоделированных показателей установлен на «произвольную форму».


person Norbert    schedule 05.05.2012    source источник
comment
Вы пытались программно реализовать контроллер контейнера? Затем вы можете использовать раскадровку для создания контроллеров представления каждой кнопки вкладки.   -  person Dabrut    schedule 22.05.2012


Ответы (2)


Вы можете создать свой UITabBar программно следующим образом:

UITabBar *myTabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
[MyView addSubview:myTabBar];

Вы должны увидеть документацию по этому вопросу для получения дополнительной информации о программной настройке UITabBar.

person Aleksander Azizi    schedule 30.05.2012

К сожалению, это невозможно сделать в раскадровке или xib.

Единственный способ поместить UITabBarController внутрь другого контроллера представления — создать контейнерный контроллер представления и добавить его к нему в коде.

В этом случае вам нужно будет создать новый UIViewController, а затем вызвать addChildViewController:childController для каждого из контроллеров представления, которые вы хотите отобразить (один раз для вашего заголовка и один раз для контроллера панели вкладок).

См. раздел Реализация контроллера представления контейнера документа ссылка на класс UIViewController для получения дополнительной информации.

person lnafziger    schedule 22.05.2012