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

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

Ответы [ 3 ]

1 голос
/ 22 ноября 2011

Проблема в том, что ваш вид на контроллере вида недостаточно высок, чтобы вместить пространство, занимаемое панелью вкладок.

CGRect current = [[self view] frame];
CGRect tabBarFrame = [[self tabBar] frame];

CGRect newFrame = CGRectMake(current.origin.x, current.origin.y, current.size.width, current.size.height + tabBarFrame.size.height);

[[self view] setFrame:newFrame];

Нечто подобное, вероятно, то, что вы хотите. Или вы можете изменить его размер в IB.

Но я не знаю, почему вы использовали бы UITabBarController, а затем скрыли панель вкладок ... Если вы не видите панель вкладок, вы не можете переключать вкладки ... таким образом, делая UITabBarController в значительной степени просто UIViewController.

1 голос
/ 22 ноября 2011

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

Чтобы обойти это, можно изменить вид окна для нового контроллера навигации без контроллера панели вкладок или использовать модальное представление для отображения содержимого без контроллера панели вкладок.

0 голосов
/ 22 ноября 2011

Я полагаю, что если вы зададите свойству view вашего UIViewController фиксированное нижнее поле и гибкую высоту, то оно растянется, чтобы автоматически заполнить высоту содержащего представления.

mycontroller.view.autoresizingMask = UIViewAutoresizingFlexibleHeight
...