0

appDelegate.m でメソッド didSelectViewController を 2 つのビューコントローラー (TabBarController でリンク) と共に使用したいと考えています。

最初の方法(単独で問題なく動作します)をコピーして、すぐ下に貼り付けます。viewController の名前を変更しましたが、「メソッドの宣言が重複しています」というエラーメッセージが表示されます。

これを解決するためのアイデアはありますか?

私が持っているもの:

- (void)tabBarController:(TBControllerViewController *)tabBarController didSelectViewController:(FoodViewController *)viewController {
    viewController.caloriesDepensees = tabBarController.caloriesTB;
}

エラーなしで持ちたいもの:

- (void)tabBarController:(TBControllerViewController *)tabBarController didSelectViewController:(FoodViewController *)viewController {
    viewController.caloriesDepensees = tabBarController.caloriesTB;
}

- (void)tabBarController:(TBControllerViewController *)tabBarController didSelectViewController:(DrinksViewController *)viewController {
    viewController.caloriesDepenseesDrinks = tabBarController.caloriesTB;
}

編集: Martin R、私はあなたのアドバイスに従いました。ここに私のコードがあります:

- (void)tabBarController:(TBControllerViewController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    if(tabBarController.selectedIndex == 0) {
        DrinksViewController *dvc = (DrinksViewController *)viewController;
        dvc.caloriesImportesD = tabBarController.caloriesTB;
    } else if (tabBarController.selectedIndex == 1) {
        FoodViewController *fvc = (FoodViewController *)viewController;
        fvc.caloriesDepensees = tabBarController.caloriesTB;
    }
}

しかし、私の「(tabBarController.selectedIndex == 1)」コマンドだけが機能します。このメソッドで viewController のインデックスを確認したので、DrinksViewController のインデックスは 0 であると確信しています。

index = [self.tabBarController.viewControllers indexOfObject:self];
    NSLog (@"%d",index);

同じ方法で「caloriesImportesD」と「caloriesDepensees」を定義しました。

この機能不全のアイデアはありますか?

4

1 に答える 1