0

У меня были проблемы с UITabBar и я не могу найти что-либо в Интернете в отношении предмета. В основном я хочу отобразить представление (скажем, TestView) и TabBar, который содержит другие виды: «Зеленый вид» и «Красный вид». Поэтому сначала я хочу, чтобы TestView отображался с tabBar внизу с двумя вкладками, один для Green view и один для Red View, после того, как одна из этих вкладок коснется соответствующего представления, будет отображаться, , но не будет вкладки для TestViewНаличие UITabBar при отображении вида не на UITabBar?

Но Heres код MainAppDelegate и картина того, что я получаю

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

//Create the TabBar VC and ButtonSelect VC 
testView = [[TestViewController alloc] init]; 
tabBarController = [[UITabBarController alloc] init]; 

//Create the viewcontroller's For the TabBarController 
UIViewController *gvc = [[GreenViewController alloc] init]; 
UIViewController *rvc = [[RedViewController alloc] init]; 

//Make a array to containing the two viewcontrollers (for TabBar) 
NSArray *viewControllers = [NSArray arrayWithObjects:gvc, rvc, nil]; 

//Attach the VC's to the TabBar 
[tabBarController setViewControllers:viewControllers]; 

//Set to window 
[window addSubview:[tabBarController view]]; 
[window addSubview:[testView view]]; 


[window makeKeyAndVisible]; 

[rvc release]; 
[gvc release]; 

return YES; 

}

и This, что я получаю ..

Пожалуйста он lp

ответ

0

Отрегулируйте рамку вашего testView. Например,

testView = [[TestViewController alloc] initWithFrame: CGRectMake ( 0.0, 20.0, 320.0, 421.0)];

Здесь я использовал «магические числа», но вам лучше получить высоту строки состояния и панели вкладок.


на комментарий

Итак, вы хотите, чтобы закрыть тестовое, когда пользователь выбирает один из вкладки. Вы можете уловить момент, когда табуляция выбрана путем установки делегата в UITabBarController и реализации метода tabBarController:didSelectViewController: `. В принципе, вы отклоните тестовое представление в этом методе.

Один из способов сделать это (и без изменения вашего кода) - установить делегат приложения в качестве делегата UITabBarController, (tabBarController.delegate = self;). Затем реализуем tabBarController:didSelectViewController:, где вы удаляете тестовое представление из окна своего приложения и делаете tabBarController.delegate = nil;.

+0

Хорошо, я получил исправление размера, но я все еще не могу заставить testViewController отображать его представление по умолчанию, а зеленые и красные представления отображаются только при касании TabBar. – srome11

+0

. Я приложил решение к вашему комментарию в исходном ответе , – MHC

 Смежные вопросы

  • Нет связанных вопросов^_^