Swift?を使用してタブバーバッジを設定する方法。たとえば、メッセージアイコンに番号1を示す新しいメッセージが表示された場合!UITabBarItem.Swiftを使用してコードを記述する必要があります。どうすればできるかわからない
ありがとうございました !
TabBarControllerへの参照を取得した場合(たとえば、UIViewControllerから)、次を実行できます。
if let tabItems = tabBarController?.tabBar.items {
// In this case we want to modify the badge number of the third tab:
let tabItem = tabItems[2]
tabItem.badgeValue = "1"
}
UITabBarControllerからはtabBar.items
の代わりに tabBarController?.tabBar.items
バッジを削除するには:
tabItem.badgeValue = nil
次の行は、UITabBerItemにバッジを表示するのに役立ちます。
tabBarController?.tabBar.items?[your_desired_tabBer_item_number].badgeValue = value
badgeValue
にViewDidAppear
を設定します。そうしないと、アプリの読み込みから表示されない場合があります。
import UIKit
class TabBarController: UITabBarController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.tabBar.items![2].badgeValue = "7"
}
}
一般に、n個のタブを持つTabBar
があることを確認しているため、安全なチェックはありません。
@Lepidopteronのおかげで、すぐに解決できます。さらに、選択したタブインデックスのインデックスを使用してそれを行うことができます。
let tabItems = self.tabBarController?.tabBar.items as NSArray!
var selectedIndex = tabBarController!.selectedIndex //here
let tabItem = tabItems![selectedIndex] as! UITabBarItem
tabItem.badgeValue = "2"
this postから参照を取得しました