2009-10-03 2 views
0

Я использую элемент управления UITabBar из библиотеки в одном из моих представлений (обратите внимание, что я не использую UITabBarController, а элемент управления UITabBar).iPhone - таба + проблема с отображением

Теперь я добавляю два элемента tabBar на этот tabBar.

Я создал класс контроллера для этого вида (.m и .h) файлов и использовал делегатов в файле .h.

В файле .m я использовал следующую функцию:

  • (аннулируется) TabBar: (UITabBar *) TabBarControl didSelectItem: (UITabBarItem *) FirstView

Я назначенный тег = 0 и tag = 1 для соответствующих элементов tabBar.

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

Итак, в приведенной выше функции я проверяю, что если тег нажатого элемента tabBar равен 0, я покажу одно другое. Я покажу другое представление.

Я показываю вид следующим образом:

Team1Scoreboard * tempTeam1Scoreboard = [Team1Scoreboard Alloc]; tempTeam1Scoreboard = [tempTeam1Scoreboard initWithNibName: @ "UserTeamScoreboard": [NSBundle mainBundle]];

self.cntrlTeam1Scoreboard = tempTeam1Scoreboard; 

    [tempTeam1Scoreboard release]; 

    UIView *theWindow = [self.view superview]; 
    [self.view removeFromSuperview]; 
    [theWindow addSubview:self.cntrlTeam1Scoreboard.view]; 

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

Пожалуйста, помогите мне, чтобы я мог загрузить правильный вид, а также сам мой tabBar.

ответ

1

TabBar исчезает, потому что это дочерний элемент представления, в котором вы добавляете нового ребенка, а новый дочерний размер такой же, как и родительский. Это имело смысл? Хорошо, посмотрите на это так:

У вас есть ViewA и ViewA есть несколько ярлыков и TabBar. ViewA управляется ViewControllerA. В ViewControllerA вы создаете экземпляр ViewB и вызываете ViewControllerA.view addSubView:instanceOfViewB, правильно? Прежде чем сделать это, вы захотите изменить размер ViewB.

Попробуйте что-то вроде этого:

ViewControllerB *viewControllerB = [[ViewControllerB alloc]initWithNibName:@"ViewB" bundle:nil]; 
CGRect frame = CGRectMake(self.view.frame.origin.x, 
          self.view.frame.origin.y, 
          self.view.frame.size.width, 
          self.view.frame.size.height - 40); 
viewControllerB.view.frame = frame; 
[self.view addSubview:viewB.viewControllerB]; 

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

+0

Привет, Marc, Спасибо, я смог нормально функционировать. Но теперь проблема в том, что заголовки каждого элемента tabBar отображаются очень близко и не отображаются должным образом. – pratik

+0

Я не уверен, что понимаю. Есть ли способ опубликовать снимок экрана о том, что он делает сейчас? – marcc