私は、TabBarControllerに5つのタブを持つアプリケーションを持っています。簡単にするために、タブA、B、C、D、Eであると言うことができます。各タブは、ナビゲーションコントローラに埋め込まれたTableViewControllerにユーザを連れて行きます。各タブには固有の.hと.mファイルもあります。大部分のコードは、5つのタブ間で非常に似ています。私はこの5つのクラスファイルを取り除き、1つのセットだけを使いたいと思っています。これにより、アプリケーションを変更するのがはるかに簡単になります(5か所ではなく1か所で)。単一の実装ファイルでどのタブが選択されたかを検出するにはどうすればよいですか?いったん私は、特定のタブが選択されたテーブルビューを具体的にレンダリングするロジックを置くことができることを知った...TabViewController内からTabBarControllerでどのタブが選択されたかを検出する - コードの再利用
私が言及すべきもう一つのことは、TableViewControllerで選択したタブを検出する必要があるということです。 TabBarControllerはアプリケーションのエントリポイントで、私はTabBarControllerサブクラスを持っていません。
私はこのコードをTableViewControllerで試しましたが、アクセスしたり使用したりしませんでした。
@interface MyController : UITableViewController <UITabBarDelegate>
の.mファイルに:
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
//NSLog(@"selectedIndex: %d", self.tabBarController.selectedIndex);
NSLog(@"didSelectItem: %d", item.tag);
}
同様のコードをクラスに入れて、A、B、C、D、E VCの5回サブクラス化してみてください。 –