2009-08-25 107 views
2

我將一個viewController添加到TabBarController。當我從自定義類和Nib添加ViewController時,它的圖標不會顯示在tabBar中。添加Tabbar控制器圖標IPhone

如果我像這樣初始化圖標不顯示。

viewController = [[FlashCardViewController alloc] initWithNibName:@"FlashCardViewController" bundle:[NSBundle mainBundle]]; 

但創建一個通用的viewController的作品。

viewController = [[UIViewController alloc] initWithNibName:nil bundle:nil]; 

這裏我們添加圖像和標題。

viewController.title = @"Quiz"; 
viewController.tabBarItem.image = [UIImage imageNamed:@"magnifying-glass.png"]; 

如何從NIB加載顯示圖標?

回答

1

可以在呼叫添加到自定義視圖控制器的viewDidLoad方法裏面tabBarItem.image二傳手:

@implementation FlashCardViewController 
//... 
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.tabBarItem.image = [UIImage imageNamed:@"magnifying-glass.png"]; 
} 
//... 
@end

編輯:好了,沒有工作。嘗試:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIImage *image = [UIImage imageNamed:@"magnifying-glass.png"]; 
    self.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"string" 
                image:image 
                 tag:0] autorelease]; 
}
+0

我確信你的建議可行,但仍然沒有圖標。任何其他想法蒂姆? – Bryan 2009-08-25 19:59:29

+0

也許自己初始化整個標籤欄項目?看到上面編輯的代碼。 – Tim 2009-08-25 23:27:58

+0

謝謝。我在另一個地方覆蓋了圖像和標題。這實際上有效!這裏只有一個問題,直到你點擊標籤來加載視圖,tabBarItem沒有圖標或標籤。有任何想法嗎? – Bryan 2009-08-26 00:01:36

0

爲什麼你在[一個NSBundle mainbundle]傳遞給FlashCardViewController初始化?通常你只是通過零 - 根據你的工作示例...

+0

我認爲這可能是一個問題,我把它切換到零,但沒有區別,所以我堅持我以前的東西。我自己一直在加載FlashCardViewController - 而不是TabBarController - 並且效果很好。 我不知道爲什麼我通過NSBundle mainbubdle。這是什麼規定? – Bryan 2009-08-25 20:53:34