4

ViewControllerでタブバーの画像を変更しようとしていますが、新しい画像を表示するには、各タブバーの項目をクリックする必要があります。

for (CustomTabBarItem *myItem in self.tabBarController.tabBar.items){
        myItem.enabled = YES; 

        myItem.badgeValue = @"1"; 

        UIImage *myImage =  [[UIImage alloc] initWithContentsOfFile:[[DesignManager sharedManager] getPathOfFile:@"test.png"]];

        *myItem.imageSelect= *myImage; // change images of each item. don't appear if I dont click on the item
}

これらの画像を直接表示するにはどうすればよいですか?ありがとう

4

2 に答える 2

2

古いタブバーアイテムを新しいものと交換する必要があります。それ以外の場合、イメージを動的に更新することはできません。

これを行う最も簡単な方法は、特定のタブで表されるビューコントローラのtabBarItemプロパティを設定することです。そのViewController内からこれを実行したい場合は、次のように記述してください。

self.tabBarItem = [[UITabBarItem alloc] initWithTitle: @"title" image: myImage: tag: nil];

または、他の場所からこれを行うことができます。たとえば、アプリの代理人は次のように言います。

UIViewController* vc = [tabBarController.viewControllers objectAtIndex: 3];
vc.tabBarItem = [[UITabBarItem alloc] initWithTitle: @"title" image: myImage: tag: nil];
于 2010-11-18T15:11:45.203 に答える
2

私はこれが古い質問であることを知っています。別のアクティブなタブからバッジの値を更新する必要があるときに、同じ問題が発生しました。別のコードを作成UITabBarItemすると、現在の問題は解決しますが、このコードが何度も呼び出されると、メモリリークが発生する可能性があります。さらに、他のView Controllerがタブにアクセスするとき、それらは新しく作成されたへの参照を持っていませんUITabBarItem。私のトリックは

vc.tabBarItem = vc.tabBarItem; 

わたしにはできる。

于 2015-03-11T21:32:30.813 に答える