私はストーリーボード上のビューコントローラのカスタムクラスとして設定されていないルートビューコントローラを持っています。代わりに、私のすべてのビューコントローラはこのようにこのクラスをサブクラス化しています。タブバーアイテムが押されたときの検出
// RootViewController
class RootViewController: UIViewController, UITabBarDelegate {
// This is not getting executed on any of the view controllers
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
print("ddd")
}
}
// Subclassing it
class TopStoriesViewController: RootViewController {
}
しかし、私は何かtabbaritemがrootviewcontrollerをサブクラス化されたビューコントローラ、すなわち上で押されたときに、メッセージが印刷されていないがやって苦労しているようです。
答えが豊富です。もし、私のViewControllerにメソッドがあるとしたら、ユーザがタブバーにヒットしたときに実装したいのですが、VCをTabBarDelegateに変換する必要があります。すべて。もしあなたが言及しているなら、他の方法。しかし、私はVCでそのメソッドを実装したい場合は、新しいTabBarControllerから自分のVCにメッセージを送信するためにプロトコルやその他の方法を使用するだけで済むでしょうか? – Manganese
@Manganeseこれは、あなたの要件に基づいて建築上の決定に至ります。ほとんどの場合と同様に、実行したいことを実装する方法は複数あります。あなたがしようとしていることについてもっと詳しく説明できるなら、私は自分の考えを分かち合うことができます。あなたが参照しているメソッドをすべてのVCに実装しますか?プロトコルはここでは便利かもしれませんが、あなたの要件に基づいて他のオプションが利用可能である可能性があります。 – mbeaty
偉大な、基本的に私は2つのタブバーがあります - 1つは私のメインVCで、もう1つはSettings VCです。設定は、ゲームレベルのリセット、オーディオのオン/オフなどです。メインVCは、ユーザーがほとんどの時間になると予想される場所です。ただし、いくつかの設定を変更しない限りです。私は主VCにある設定が変更された場所を知りたい。そのため、設定ビューの属性の変更で変更されるタイププロパティを格納するクラスを作成しました。そこから、結果を使用してメインVCを設定します。その結果、ユーザーがメインVCにナビゲートするとすぐに設定が有効になります。 – Manganese