私はUITabBarControllerを持つUITabBarを持っています。このコントローラでは、tabBarアイテムを無効/有効にするなど、TabBarを調整しています。私はviewDidLoadでそれをやっています。UITabBarはUIButtonのアイテムを無効/有効にします
しかし、これらの調整のためのトリガーは、関連するタブの1つにあり、ビューコントローラーになります。トリガーはボタンになり、ボタンを押すとtabBarの項目の1つが「無効」から「有効」に変わります。
使用する必要があるtabBarリロード機能はありますか?これを実現するために何らかの形でUITabBarControllerをリロードする必要がありますか?
ありがとうございます - ご協力いただきありがとうございます。
編集: UITabBarControllerとUIViewControllerのVCは以下のとおりです。
UITabBarController
class TabBarVC: UITabBarController, TopRatedVCDelegate {
var tabBarItem1 = UITabBarItem()
var tabBarItem2 = UITabBarItem()
var tabBarItem3 = UITabBarItem()
var tabBarItem4 = UITabBarItem()
override func viewDidLoad() {
super.viewDidLoad()
}
func setbar() {
let tabBarControllerItems = tabBar.items
if let tabArray = tabBarControllerItems {
tabBarItem1 = tabArray[0]
tabBarItem2 = tabArray[1]
tabBarItem3 = tabArray[2]
tabBarItem4 = tabArray[3]
}
tabBarItem1.isEnabled = true
tabBarItem1.badgeValue = "99"
tabBarItem2.isEnabled = false
tabBarItem3.isEnabled = true
tabBarItem4.isEnabled = true
}
}
のUIViewControllerボタン
protocol TopRatedVCDelegate: class {
func setbar()
}
class TopRatedVC: UIViewController {
@IBOutlet weak var userDefValueLbl: UILabel!
weak var delegate: TopRatedVCDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnPressed(_ sender: Any) {
delegate?.setbar()
}
}
あなたはおそらくプロトコル/委任パターンを使いたいと思う。これはあなたの 'トリガーボタン'があなたのカスタム 'UITabBarController'に"コールバック "できるようにします。ここであなたは無効化/有効化タブ(またはあなたがやりたいこと)を処理できます。 – DonMag
それはうまくいくようなこの音です。どのように私はそれを行うことができますどのような例がありますか?私は実際にボタンを押して、チェックを実行するがUITabBarControllerでUserDefaultsにいくつかの値を保存することで別の方法で試しましたが、これはtabBarがロードされた後にのみ機能しました。 ボタンをクリックしてチェックを実行すると、バーの「リロード」を呼び出すことができるので、いつでも作業したいと思っています... –