Я хочу использовать метод didSelectViewController в моем appDelegate.m с двумя viewControllers (связанный с TabBarController).Как использовать didSelectViewController с двумя разными контроллерами?
Когда я копирую первый метод (который работает отлично в одиночку) и вставляйте его чуть ниже. Однако я изменяю имя viewController, но появляется сообщение об ошибке «duplicate declaration of method».
Любые идеи для решения этой проблемы?
Что у меня есть:
- (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;
}
EDIT: 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;
}
}
Но только мой "(tabBarControlle r.selectedIndex == 1) ". я проверил индекс ViewController с этим методом, поэтому я уверен, что индекс DrinksViewController является 0:
index = [self.tabBarController.viewControllers indexOfObject:self];
NSLog (@"%d",index);
я определил таким же образом «caloriesImportesD» и «caloriesDepensees».
Любая идея для этой дисфункции?
Так что 'tabBarController.selectedIndex' внутри' метода didSelectViewController'? - Альтернативой может быть использование 'isKindOf' для проверки класса передаваемого контроллера представления. –
SelectIndex равен 0. Фактически, didSelectViewController работает только с нажатием на вкладке и поэтому он не работает для первого появления на вкладке. Однако то, что я показываю в своем представлении, контролирует только «чтение» в первый раз. Вот почему я не могу использовать «caloriesImportesD». Любая идея передать это значение DrinksViewController перед первым появлением TabBarController? – GoldXApp
Тогда я не понимаю, почему 'if (tabBarController.selectedIndex == 0)' не работает. Вы вводили '=' вместо '=='? –