UITabBarController не отвечает

Я использую UITabBarController с такими UINavigationControllers

введите здесь описание изображения

Я добавляю это к представлению, используя

tabctrl.view.frame = CGRectMake(0, 0, 320, 548);
[self.view addSubview:tabctrl.view];

Экран выглядит так

введите здесь описание изображения

Но я не могу переключиться на другую вкладку (т.е. прикосновение к вкладке tabctrl не дает ответа)

Если я изменю рамку, как

tabctrl.view.frame = CGRectMake(0, 0, 320, 488);

тогда экран выглядит так,

введите здесь описание изображения

Теперь я могу коснуться вкладки и переключиться на нужный контроллер просмотра. Как решить эту проблему?

Мне нужно получить доступ к tabctrl, когда его высота кадра равна 568.

Я использую xcode 4.6.2 и симулятор ios 4inch retina.


person Nazik    schedule 24.06.2013    source источник
comment
Будете ли вы сначала очищать его [self.view addSubview: tabctrl.view]; вот что такое self.view?   -  person Prateek Prem    schedule 24.06.2013
comment
В себе. вид, вид - это UIViewcontroller   -  person Nazik    schedule 24.06.2013
comment
Итак, где он (UIViewcontroller) добавлен в окно?   -  person Prateek Prem    schedule 24.06.2013
comment
Вы выбрали тип своего проекта в качестве приложения типа TabBar?   -  person Prateek Prem    schedule 24.06.2013
comment
И какова цель UIViewcontroller   -  person Prateek Prem    schedule 24.06.2013
comment
Хорошо, теперь я проверю свои ответы в разделе ответов   -  person Prateek Prem    schedule 24.06.2013
comment
В Uiviewcontroller у меня есть дизайн экрана входа в систему. Если пользователь вводит правильные учетные данные для входа, я добавлю tabctrl в представление   -  person Nazik    schedule 24.06.2013
comment
вот почему я использую Uiviewcontroller   -  person Nazik    schedule 24.06.2013


Ответы (3)


Контроллер панели вкладок может находиться за чем-то еще в нижней части экрана. Вы можете проверить это с помощью кода:

[self.view bringSubviewToFront: tabctrl]

Если это решит вашу проблему, попробуйте найти, какое представление находится перед контроллером панели вкладок.

person Efesus    schedule 24.06.2013

Используйте этот код:

 [appDelegate.window setRootViewController:tabctrl];

скорее, чем:

tabctrl.view.frame = CGRectMake(0, 0, 320, 568);
[self.view addSubview:tabctrl.view];
person Prateek Prem    schedule 24.06.2013

Установите для свойства WantFullScreenLayout вашего rootViewController значение YES.

tabbarController.wantsFullScreenLayout = YES

Это должно решить проблему переключения вкладок на 4-дюймовом экране.

person vampirewalk    schedule 24.06.2013