Обрабатывать событие при нажатии на элемент вкладки, если он активирован - PullRequest
1 голос
/ 05 ноября 2010

Hello Обычно, если вы находитесь в UINavigation Hirarchy с комбинацией Tabbar-Navigationbar и нажимаете на элемент Tabbar, вы возвращаетесь к rootviewControler.

Мне нужно получить это событие -> нажатие на элемент вкладки, если оно активировано. Можно ли как-то поймать это событие?

С наилучшими пожеланиями

Ответы [ 2 ]

1 голос
/ 15 ноября 2010

Я понял:

    //NSLog(@"TabItem %@ tapped with tag: %d", viewController.tbItem.title, viewController.tbItem.tag);
if ([viewController.tbItem.title isEqualToString:NSLocalizedString(@"FEATURE_NEARBY", nil)]) {
    if([((MyNavigationController*)(self.selectedViewController)).visibleViewController isKindOfClass:[MyViewController class]]){
    [(MyViewController*)((MyNavigationController*)(self.selectedViewController)).visibleViewController myFunction];
    }
} 
0 голосов
/ 05 ноября 2010

Сделайте так, чтобы ваш контроллер представления соответствовал протоколу UITabBarDelegate и внедрил tabBar:didSelectItem: Я обычно устанавливаю UITabBarItems с тегами, которые я могу использовать в коде, чтобы решить, что делать.

@interface MyViewController : UIViewController <UITabBarDelegate> 
{
}
@end

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    enum {
        FooButton = 1,  // Presumably you set these up in IB or in code elsewhere
        BarButton,
        BazButton
    };

    switch( item.tag ) {
        case FooButton:
            [self doTheFooThing];
        break;
        // ... Other cases here
    }
}
...