web-dev-qa-db-ja.com

迅速にタブバーバッジを設定する方法は?

Swift?を使用してタブバーバッジを設定する方法。たとえば、メッセージアイコンに番号1を示す新しいメッセージが表示された場合!UITabBarItem.Swiftを使用してコードを記述する必要があります。どうすればできるかわからない

ありがとうございました !

30
Faris

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
80
Lepidopteron

次の行は、UITabBerItemにバッジを表示するのに役立ちます。

tabBarController?.tabBar.items?[your_desired_tabBer_item_number].badgeValue = value
15
Rupom

badgeValueViewDidAppearを設定します。そうしないと、アプリの読み込みから表示されない場合があります。

import UIKit

class TabBarController: UITabBarController {

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    self.tabBar.items![2].badgeValue = "7"
}

}

一般に、n個のタブを持つTabBarがあることを確認しているため、安全なチェックはありません。

3
wzbozon

@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から参照を取得しました

1