Shishir.bobby
Shishir.bobby

Reputation: 10984

programmatically create TABBAR

i created TAb bar programatically in this manner

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];

What i want to accomplish is, i want to assign images to tab bar, firstly i tried on first 2 tabs, is showing a blue block instead of image. secondly, when we create tab bar through Interface builder, there are custom tab bar item, like, contacts, search, bookmark ,compose etc.

so, if i want to assign contacts or search image to my tab bar items,which looks like the one in IB, how can i do it??

regards

Upvotes: 2

Views: 8753

Answers (2)

Jordan
Jordan

Reputation: 21760

Your images need to have a proper mask. You should save as png.

Upvotes: 3

Warrior
Warrior

Reputation: 39374

Try something like this

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];
homeNavBar.tabBarItem.title=@"Home";
homeNavBar.tabBarItem.image=[UIImage imageNamed:@"home.png"];
[ptr_homeTab release];

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

viewController = [[TreatMentiViewController alloc]initWithNibName:@"TreatMentiViewController" bundle:nil];
UINavigationController *hospitalNavBar=[[UINavigationController alloc]initWithRootViewController:viewController];
hospitalNavBar.tabBarItem.title=@"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];
managerNavBar.tabBarItem.title=@"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];

Upvotes: 15

Related Questions