0

複数のビュー コントローラーを含むアプリを構築しています。すべての VC には UITabBar オブジェクトが含まれています (Storyboard から挿入)。UITabBar を拡張して TabBarItems などをカスタマイズするクラスを作成しました。

タブバーのタップを検出するために、私の VC には UITabBarDelegate とそれぞれの implements が含まれていますdidSelectItem

私の質問は、コードを改善し、実装するすべての VC の下に存在するこの重複コードをすべて削除するにはどうすればよいdidSelectItemですか? このコードをどこかで収集し、これらすべての VC がそれにアクセスしてタップを検出することはできますか?

前のビューからどのアイテムが押されたかに関する情報を保持し、新しいビューで押されたままにしたいと思います。

4

1 に答える 1

1

コメントで述べたように、一般的なスーパークラスでデリゲート メソッドを実装できます。別のアイデア: デリゲートは、アイテムが属するクラスに限定されません。タブ バーのデリゲート メソッドを処理する専用のクラスを 1 つ作成し、そのクラスをすべてのタブ バーのデリゲートにすることができます。

このクラスは、必要なメソッドを実装し、識別子またはその他のシステムに基づいて、任意の VC からのあらゆるものを任意の方法で処理します。

于 2013-05-31T17:57:02.147 に答える