2010-03-15 76 views

回答

25
yourViewController.tabBarItem = [[UITabBarItem alloc] 
initWithTitle:NSLocalizedString(@"Name", @"Name") 
image:[UIImage imageNamed:@"tab_ yourViewController.png"] 
tag:3]; 

的viewControllers被添加到標籤欄,所以在標籤欄變得可見的形象和名稱應設置(如果的appDelegate他們那裏例如應用程序啓動)。之後,您可以使用上面的代碼來更改viewController中的loadView或viewDidAppear的圖標和文本。

+1

這完美地工作viewcontrollers。謝謝! – 2010-03-16 01:16:40

+0

這在iOS 4.x中不起作用,並且您忘記釋放內存 – Gargo 2012-09-05 09:44:45

1

是的。您的UITabBar有一個名爲items的屬性,該屬性是每個標籤欄項目的UITabBarItem s的數組。您可以使用–initWithTitle:image:tag:構造函數創建一個UITabBarItem以使用您自己的圖像,或者使用–initWithTabBarSystemItem:tag:構造函數來使用系統圖像。

1

您也可以在AppDelegate中通過聲明UITabBarController iVar並將其指向應用程序tabBarController來執行此操作。您可以使用items陣列訪問各個標題。和setTitle

@synthesize tabBarController; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 
    self.tabBarController = (UITabBarController*)self.window.rootViewController; 
    NSArray* items = [self.tabBarController.tabBar items]; 
    [[items objectAtIndex:0] setTitle:@"Home"]; 
    [[items objectAtIndex:1] setTitle:@"Cool"]; 
    [[items objectAtIndex:2] setTitle:@"Stuff"]; 
    [[items objectAtIndex:3] setTitle:@"Settings"]; 
    return YES; 
} 
0

正確的方法是:在viewDidLoad中

[self.tabBarItem setImage:[UIImage imageNamed:@"<Image Name>"]]; 

以下行添加這被設置裏面的UITabBarController

相關問題