質問

私は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
}

誰もが知っているどのように私は直接これらの画像を表示することができますすることができますか? おかげ

役に立ちましたか?

解決

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

これを行う最も簡単な方法は、特定のタブで表さビュー - コントローラの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];

他のヒント

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

vc.tabBarItem = vc.tabBarItem; 

これは私のために動作します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top