Если то, что вы делаете, это создание подкласса UITabBarController, то ... как ни странно ... вы можете заставить его работать, задав себя в качестве делегата:
- (void)viewDidLoad
{
[super viewDidLoad];
self.delegate = self;
}
Тогда действие didSelectViewController будет выполняться нормально:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
NSLog(@"View Changed");
}
Не забудьте добавить свой класс UITabBarControllerDelegate в ваш файл .h:
@interface MyTabBarController : UITabBarController <UITabBarControllerDelegate>
@end