2010-05-11 5 views
0

Я застрял в действительно простой проблеме. И я боюсь, что мой вопрос может раздражать некоторых людей. Проблема, с которой я столкнулся, заключается в том, что я хочу добавить UITabBar Control в свое приложение iphone, отличное от основного экрана.Добавить UITabBar Control!

Позвольте мне объяснить, я сделал все успешно Добавлен элемент управления UItabbar из IB в xib главного окна, добавлена ​​переменная на заднем конце, связанная с ней перетаскиванием строки. Также добавлена ​​переменная UIWindow и написана эти строки.

[window addSubview:tabBarController.view]; 
[window makeKeyAndVisible]; 

Когда я запускаю приложение, появляется пустое окно и панель вкладок отображается внизу. Но проблема не в том, что панель вкладок будет отображаться на моем первом экране (или на главном экране, если вы назовете его). Фактически это третий, четвертый экран моего приложения, где я хочу, чтобы панель вкладок отображалась внизу. Это настолько странно, что переменная управления TabBar добавляется в файлы делегирования приложения приложения. Может ли кто-нибудь помочь? Спасибо!

Теймур

ответ

1

К сожалению, документация для UITabBarController гласит следующее :

При развертывании та b bar, вы должны установить это представление в качестве корня вашего окна. В отличие от других контроллеров , интерфейс панели вкладок никогда не должен устанавливаться в качестве ребенка другого контроллера.

Хотя это технически возможно, чтобы добавить мнение UITabBarController как подвид чего-то другого, чем UIWindow, вы обнаружите, что она представляет больше проблем, чем можно было бы ожидать. Например, поскольку UITabBarController предполагает, что родительский элемент его представления является полноэкранным UIWindow, он будет компенсировать свой кадр на 20 пикселей для размещения строки состояния.

Итак, моя рекомендация вам должна придумать дизайн, в котором ваше представление UITabBarController является подчиненным интерфейсом UIWindow, если это возможно. Это не обязательно означает, что это должно быть первое представление, которое отображается. Вы всегда можете добавлять и удалять подзоны своего UIWindow в других местах, кроме applicationDidFinishLaunching:

0

на окно, которое требуется добавить контроллер TabBar к используйте

[self.view addSubview:tabBarController.view]

вместо ваших двух строк выше