2010-12-09 17 views
0

5つのタブ項目でタブバーを作成しています。プログラムでタブバーを作成しました。私はデフォルトのイメージ(その他)をタブバー項目に設定したいと思います。 IBを介してタブバーを作成する場合、識別子を「その他」として選択しますが、プログラムでそれを行う方法は?デフォルトのイメージをプログラムでタブバーアイテムに設定する方法は?

答えて

0

この目的のために、親クラスがUITabBarになるクラスを作成する必要があります。ここで

は、その.hファイルです:声明の中で

#import "ImageTabBar.h" 
    #import "GlobalVars.h" 

    @implementation ImageTabBar 

    - (void) drawRect:(CGRect)rect 
    { 
     UIImage *tabImage; 
     switch (intTabBarSelectedIndex) 
     { 
      case 0: 
       tabImage=[UIImage imageNamed:@"TabBarImageTwitter.png"]; 
       [tabImage drawAtPoint:CGPointMake(0, 0)]; 
       break; 
      case 1: 
       tabImage=[UIImage imageNamed:@"TabBarImageCalender.png"]; 
       [tabImage drawAtPoint:CGPointMake(0, 0)]; 
       break; 

      case 2: 
       tabImage=[UIImage imageNamed:@"TabBarImageStanding.png"]; 
       [tabImage drawAtPoint:CGPointMake(0, 0)]; 
       break; 

      case 3: 
       tabImage=[UIImage imageNamed:@"TabBarImageNews.png"]; 
       [tabImage drawAtPoint:CGPointMake(0, 0)]; 
       break; 

      case 4: 
       tabImage=[UIImage imageNamed:@"TabBarImagePhotos.png"]; 
       [tabImage drawAtPoint:CGPointMake(0, 0)]; 
       break; 

      default: 
       break; 
     } 
    } 

    - (void)dealloc 
    { 
     [super dealloc]; 
    } 


    @end 

switch (intTabBarSelectedIndex) 

intTabBarSelectedIndexがグローバルとして定義されます

#import <UIKit/UIKit.h> 


    @interface ImageTabBar : UITabBar 
    { 

    } 

    @end 

そして、ここではその.mファイルであります変数で、整数型です。

今すぐTabBarControllerクラスに来てください。ここで

は、その.hファイルは

#import <UIKit/UIKit.h> 

@class ImageTabBar; 

@interface TabBarViewController : UIViewController <UITabBarControllerDelegate> 
{ 
    ImageTabBar *objOfImageTabBar; 

    IBOutlet UITabBarController *uiTabBarC; 
} 

@property (nonatomic, retain) IBOutlet UITabBarController *uiTabBarC; 

- (void)setNeedsDisplay; 

@end 

されており、ここではその.mファイルは

あるごTabBarControllerクラスの.mファイルに次の機能を含める:

- (void)viewDidLoad 
{ 
    [self.navigationController setNavigationBarHidden:YES]; 

    self.view    = uiTabBarC.view; 
    uiTabBarC.selectedIndex = intTabBarSelectedIndex; 
    uiTabBarC.delegate  = self; 
    [super viewDidLoad]; 
} 

#pragma mark TaBarViewController delegate 

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    intTabBarSelectedIndex = uiTabBarC.selectedIndex; 

    UITabBar *aTabBar = tabBarController.tabBar; 
    [aTabBar setNeedsDisplay]; 
} 

- (void)setNeedsDisplay 
{ 

} 

正確に行いますこのように、コードは完全に実行されます。

+0

この回答には相当量の修理作業が必要でした。それは7年間かなり読めないでしょう。複数のファイルを提示している場合は、それらを1つのコードブロックにフォーマットしておかないでください。そして、介在する素材が通常の段落テキストとしてフォーマットされていることを確認してください。 – halfer

関連する問題