2013-11-11 4 views
0

Я работаю с UITabBarController,Проблема с UITabBarController

Я выбираю UITabBarController Tab его работает нормально (вид контроллера и Tab изображение изменено).

, но когда я пытаюсь с кодом

AppDelegate.Tabctrl.selectedIndex = 2; 

вид справа контроллер выбран, но Tab изображение в самой вкладке 0-е, я стараюсь с ручными изображениями для TabBarController. Вот код.

-(void) LoadTabbarcontrol 
{ 
    UIStoryboard *board = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 

    AppDelegate.Tabctrl = [board instantiateViewControllerWithIdentifier:@"TabbarCtrlId"]; 

    AppDelegate.Tabctrl.delegate = self; 

    UIWindow *window = AppDelegate.window; 
    [window addSubview:AppDelegate.Tabctrl.view]; 
    [window makeKeyAndVisible]; 

    imgTab = [[UIImageView alloc]initWithFrame:CGRectMake(0,0,320.0,44.0)]; 
    imgTab.image=[UIImage imageNamed:@"Tabbar_bg.png"]; 
    [AppDelegate.Tabctrl.tabBar addSubview:imgTab]; 

    imgHome=[[UIImageView alloc]initWithFrame:CGRectMake(4.0,1.0,60.0,44.0)]; 
    imgHome.image=[UIImage imageNamed:@"Home-Select.png"]; 
    [imgTab addSubview:imgHome]; 

    imgMyTc=[[UIImageView alloc]initWithFrame:CGRectMake(67.0,1.0,60.0,44.0)]; 
    imgMyTc.image=[UIImage imageNamed:@"MyTc.png"]; 
    [imgTab addSubview:imgMyTc]; 

    imgBrowse=[[UIImageView alloc]initWithFrame:CGRectMake(130.0,1.0,60.0,44.0)]; 
    imgBrowse.image=[UIImage imageNamed:@"Browse.png"]; 
    [imgTab addSubview:imgBrowse]; 

    imgInstore=[[UIImageView alloc]initWithFrame:CGRectMake(193.0,1.0,60.0,44.0)]; 
    imgInstore.image=[UIImage imageNamed:@"Instore.png"]; 
    [imgTab addSubview:imgInstore]; 

    imgMore=[[UIImageView alloc]initWithFrame:CGRectMake(256.0,1.0,60.0,44.0)]; 
    imgMore.image=[UIImage imageNamed:@"More.png"]; 
    [imgTab addSubview:imgMore]; 

    AppDelegate.Tabctrl.view.hidden = NO; 
    AppDelegate.Tabctrl.selectedIndex = 2; 
} 


    - (void)tabBarController:(UITabBarController *)tabBarControllers didSelectViewController:(UIViewController *)viewController 
    { 
     if (tabBarControllers.selectedIndex == 0) 
     { 
      imgHome.image=[UIImage imageNamed:@"Home-Select.png"]; 
      imgMyTc.image=[UIImage imageNamed:@"MyTc.png"]; 
      imgBrowse.image=[UIImage imageNamed:@"Browse.png"]; 
      imgInstore.image=[UIImage imageNamed:@"Instore.png"]; 
      imgMore.image=[UIImage imageNamed:@"More.png"]; 
     } 
     else if (tabBarControllers.selectedIndex == 1) 
     { 
      imgHome.image=[UIImage imageNamed:@"Home.png"]; 
      imgMyTc.image=[UIImage imageNamed:@"MyTc-Select.png"]; 
      imgBrowse.image=[UIImage imageNamed:@"Browse.png"]; 
      imgInstore.image=[UIImage imageNamed:@"Instore.png"]; 
      imgMore.image=[UIImage imageNamed:@"More.png"]; 
     } 
     else if (tabBarControllers.selectedIndex == 2) 
     { 
      imgHome.image=[UIImage imageNamed:@"Home.png"]; 
      imgMyTc.image=[UIImage imageNamed:@"MyTc.png"]; 
      imgBrowse.image=[UIImage imageNamed:@"Browse-Select.png"]; 
      imgInstore.image=[UIImage imageNamed:@"Instore.png"]; 
      imgMore.image=[UIImage imageNamed:@"More.png"]; 
     } 
     else if (tabBarControllers.selectedIndex == 3) 
     { 
      imgHome.image=[UIImage imageNamed:@"Home.png"]; 
      imgMyTc.image=[UIImage imageNamed:@"MyTc.png"]; 
      imgBrowse.image=[UIImage imageNamed:@"Browse.png"]; 
      imgInstore.image=[UIImage imageNamed:@"Instore-Select.png"]; 
      imgMore.image=[UIImage imageNamed:@"More.png"]; 
     } 
     else if (tabBarControllers.selectedIndex == 4) 
     { 
      imgHome.image=[UIImage imageNamed:@"Home.png"]; 
      imgMyTc.image=[UIImage imageNamed:@"MyTc.png"]; 
      imgBrowse.image=[UIImage imageNamed:@"Browse.png"]; 
      imgInstore.image=[UIImage imageNamed:@"Instore.png"]; 
      imgMore.image=[UIImage imageNamed:@"More-Select.png"]; 
     } 
    } 

Может ли кто-нибудь помочь мне в этом?

См экран образца Если я дам

AppDelegate.Tabctrl.selectedIndex = 2; 

выход как этот

enter image description here

ответ

1

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

[[AppDelegate.Tabctrl.tabBar.items objectAtIndex:1] setFinishedSelectedImage:[UIImage imageNamed:@"message12_64.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"message_112_64.png"]]; 
+0

Спасибо, что он работает для меня. – Ramesh

0

Вы пытаетесь добавить изображения, сделав subview witch, не работает, потому что tabb Кнопки аг Кнопка и они имеют свойство изображения тоже так добавить изображение значка там, следовать этой небольшой учебник и прочитать его до начала, так что вы получите понять

UITabBarController Programmatically

для устанавливая tabbaritem изображение пойти с этим

UITabBarItem *tabItem = [[[UITabBarItem tabBar] items] objectAtIndex:yourIndex]; 
[tabItem setTitle:@"theTitle"]; 
[tabItem setImage:[UIImage imageNamed:@"yourImage.png"]]; 
Смежные вопросы