2010-11-18 12 views
3

私はViewControllerで私のタブバーの画像を変更しようとしていますが、新しい画像を表示するには、各タブバー項目をクリックする必要があります。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 
} 

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

答えて

2

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

これを行う最も簡単な方法は、特定のタブで表されるビューコントローラのtabBarItemプロパティを設定することです。あなたがそのビューコントローラ内からこれをやってみたかった場合は、単に書く:

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]; 
+0

ありがとうございます – blade196

2

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

vc.tabBarItem = vc.tabBarItem; 

私のために働いています。

+0

ありがとうございます。 –

+0

が動作しない、ios 10 –

関連する問題