2010-10-13 4 views
2

я создал панель вкладок программно таким образомпрограммно создать TabBar

UITabBarController *tabBarController = [[UITabBarController alloc] init]; 


    contacts *vc1 = [[contacts alloc]init]; 

    vc1.tabBarItem.image=[UIImage imageNamed:@"contacts.png"]; 

    search* vc2 = [[search alloc] init]; 

    vc2.tabBarItem.image=[UIImage imageNamed:@"search.png"]; 

    a1* vc3 = [[a1 alloc] init]; 

    a2 *vc4 = [[a2 alloc] init]; 

    a3 *vc5 = [[a3 alloc] init]; 


    NSArray* controllers = [NSArray arrayWithObjects:vc1, vc2,vc3,vc4,vc5, nil]; 
    tabBarController.viewControllers = controllers; 

    [self.view addSubview:detailNavCont]; 
    // Add the tab bar controller's current view as a subview of the window 
    [self.view addSubview:tabBarController.view]; 

Что я хочу сделать это, я хочу, чтобы назначить изображения на панели вкладок, во-первых, я пытался на первых 2-х вкладок, показывает синий блок вместо изображения. Во-вторых, когда мы создаем панель вкладок через построитель интерфейсов, есть пользовательский элемент панели вкладок, например, контакты, поиск, закладка, составление и т. Д.

поэтому, если я хочу назначить контакты или искать изображение в пунктах панели вкладок , который выглядит как один в IB, как я могу это сделать ??

С уважением

ответ

15

попробовать что-то вроде этих

tabBars = [[UITabBarController alloc] init]; 
NSMutableArray *localViewControllersArray = [[NSMutableArray alloc] initWithCapacity:4]; 

HomeTabViewController *ptr_homeTab; 
ptr_homeTab = [[HomeTabViewController alloc]initWithNibName:@"HomeTabViewController" bundle:nil]; 
UINavigationController *homeNavBar=[[UINavigationController alloc]initWithRootViewController:ptr_homeTab]; 
[email protected]"Home"; 
homeNavBar.tabBarItem.image=[UIImage imageNamed:@"home.png"]; 
[ptr_homeTab release]; 

myHospitalviewController=[[MyHospitalViewController alloc]initWithNibName:@"MyHospitalViewController" bundle:nil]; 
UINavigationController *myHospitalNavBar=[[UINavigationController alloc]initWithRootViewController:myHospitalviewController]; 
[email protected]"My Hospital"; 
myHospitalNavBar.tabBarItem.image=[UIImage imageNamed:@"myhospital.png"]; 
[myHospitalviewController release]; 

viewController = [[TreatMentiViewController alloc]initWithNibName:@"TreatMentiViewController" bundle:nil]; 
UINavigationController *hospitalNavBar=[[UINavigationController alloc]initWithRootViewController:viewController]; 
[email protected]"Hospital"; 
hospitalNavBar.tabBarItem.image=[UIImage imageNamed:@"hospital.png"]; 
[viewController release]; 

PersonalMedicineViewController *ptr_PersonalMedicine = [[PersonalMedicineViewController alloc] initWithNibName:@"PersonalMedicineViewController" bundle:nil]; 
UINavigationController *managerNavBar=[[UINavigationController alloc]initWithRootViewController:ptr_PersonalMedicine]; 
[email protected]"Manager"; 
managerNavBar.tabBarItem.image=[UIImage imageNamed:@"manager.png"]; 
[ptr_PersonalMedicine release]; 

[localViewControllersArray addObject:homeNavBar]; 
[localViewControllersArray addObject:hospitalNavBar]; 
[localViewControllersArray addObject:myHospitalNavBar]; 
[localViewControllersArray addObject:managerNavBar]; 

[homeNavBar release]; 
[hospitalNavBar release]; 
[myHospitalNavBar release]; 
[managerNavBar release]; 

tabBars.viewControllers = localViewControllersArray; 
tabBars.view.autoresizingMask==(UIViewAutoresizingFlexibleHeight); 

[localViewControllersArray release]; 

[window addSubview:tabBars.view]; 
+0

@warrrior ... dat was awesome.but я не понял, почему мои изображения выходят как синий блок? – iscavengers

+0

thnx gr8 описание ... – Ayaz

3

Ваших изображений должно иметь правильную маску. Вы должны сохранить как png.

+0

Мои изображения в .png frmat только. – iscavengers

+0

убедитесь, что у вас есть прозрачный фон. – Jordan