2014-12-05 2 views
1

в моем приложении iOS 7+ у меня есть 4 элемента UITabBarController. Один из этих элементов должен перейти к viewController_A или viewController_B в соответствии с определенными условиями (myCondition).Переключение контроллера просмотра из элемента табуляции в соответствии с условием

У меня есть класс TabBarController, где я уже установил логику в соответствии с myCondition, чтобы изменить item.image и item.title. Код работает нормально, но я не знаю, как отправить item1 в viewController_A или viewController_B

UITabBarController *tabBarController = (UITabBarController *)self; 
UITabBar *tabBar = tabBarController.tabBar; 
UITabBarItem *item0 = [tabBar.items objectAtIndex:0]; 
UITabBarItem *item1 = [tabBar.items objectAtIndex:1]; 
UITabBarItem *item2 = [tabBar.items objectAtIndex:2]; 
UITabBarItem *item3 = [tabBar.items objectAtIndex:3]; 

[некоторые больше кода здесь]

if (myCondition) { 
     item1.selectedImage = myItemImageSel_B; 
     item1.image= myItemImage_B; 
     item1.title= myItemTitle_B; 
    } 
    else 
    { 
     item1.selectedImage = myItemImageSel_A; 
     item1.image= myItemImage_A; 
     item1.title= myItemTitle_A; 
    } 

В перетекает в настоящее время устанавливается с помощью раскадровки для всех 4 предмета.

Я использую правильный подход? Или я должен просто добавить новый элемент в viewController_B и скрыть его до тех пор, пока мое условие не будет истинным?

Благодарим за помощь!

ответ

0

Ну, один подход, который вы можете сделать, это установить значение тега внутри вашего tabview и использовать switch case statement вместо использования if else condition. И это будет быстрее.

+0

Спасибо, что вы имеете в виду, установив значение тега? Как это определило бы переключатель между viewController_A или viewController_B? – DavideC

+0

Я имею в виду, если у вас есть несколько табулей, то вы можете установить его значение тега –

0

Вы можете использовать UITabBarControllerDelegate:

tabBarController.delegate = self 

Затем реализовать tabBarController: shouldSelectViewController:

- (void)configureTabbarItem:(UITabBarItem *)item image:(UIImage *)image selectedImage:(UIImage *)selectedImage andTitle:(NSString *)title { 
item.selectedImage = image; 
item.image = selectedImage; 
item.title = title; 
} 

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { 
NSArray *items = tabBarController.tabBar.items; 
if (MyCondition) { 
    [self configureTabbarItem: items[0] 
         image: myItemImageSel_B 
       selectedImage: myItemImage_B 
        andTitle: myItemTitle_B]; 
} 
else { 
    [self configureTabbarItem: items[0] 
         image: myItemImageSel_A 
       selectedImage: myItemImage_A 
        andTitle: myItemTitle_A]; 
} 
return YES; 
} 
+0

Спасибо, этот код у меня хорошо работает, мой вопрос состоял в том, как переходить в viewController_A или viewController_B в соответствии с myCondition, не уверен, что вы отвечаете на это. – DavideC

 Смежные вопросы

  • Нет связанных вопросов^_^