2009-08-25 13 views
2

私はTabControllerをTabBarControllerに追加しています。カスタムクラスとNibからViewControllerを追加すると、アイコンがtabBarに表示されません。Tabbar Controllerアイコンを追加する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

編集: OK、それは動作しませんでしたので。試してみてください:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

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

あなたの提案はうまくいくと思っていましたが、まだアイコンはありません。他のアイデアティム? – Bryan

+0

タブバーの項目全体を自分で初期化することはできますか?上記の編集済みコードを参照してください。 – Tim

+0

ありがとうございます。私は別の場所でイメージとタイトルを上書きしていました。これは実際に動作します!ここで問題となるのは、タブをクリックしてビューをロードするまでは、tabBarItemにはアイコンやラベルがありません。何か案は? – Bryan

0

[NSBundle mainbundle]をFlashCardViewController initに渡すのはなぜですか?通常、あなたはあなたの作業例として、無限に渡します...

+0

私はそれが問題かもしれないと思っていましたが、それを無にしましたが、違いはありませんでした。私はそれ自身でFlashCardViewControllerを読み込んでいました.TabBarControllerではなく、うまくいきました。 なぜNSBundle mainbubdleを渡すのかわかりません。それは何を指定しますか? – Bryan

関連する問題