Вопрос

Probably a simple question, but I'm having a hellofa time finding a solution to it.

I need to find the identifier of the current tab in a tabbarcontroller and use it in a conditional to run a method.

how do I find this?

if (self.tabbarcontroller.identifier == @"My identifier") {
   // do some method
} else {
   // do the default method
}
Это было полезно?

Решение

UIWindow *window = [[UIApplication sharedApplication] keyWindow];
UITabBarController *tabBarController = (UITabBarController*) window.rootViewController;
UIViewController *selectedVC = tabBarController.selectedViewController;
if ([selectedVC.identifier isEqualToString:@"anIdentifier"])
{
  // Do something
} else {
  // Do something else
}

You can set the identifier of a ViewController in your storyboard

Другие советы

Check out the following code. Also make sure that the delegate for the UITabBar is correct pointing to the view controller, in this case FirstViewController.

**FirstViewController.h****

@interface FirstViewController : UIViewController<UITabBarDelegate>

**FirstViewController.m:**

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    NSLog(@"%@",[item tag]);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top