У меня в приложении appDelegate есть экземпляр UITabBarController, но мне нужен способ узнать, когда пользователь нажимает различные элементы панели вкладок (кнопки на панели вкладок).
-UITabBarDelegate протокол для спасения (с необходимым методом didSelectViewController)!
Со всем, что связано в Интерфейсном Разработчике, как получить ссылку на фактический экземпляр подкласса UIViewController, который соответствует этому элементу панели вкладок, который был нажат? *
Мне нужна эта ссылка, потому что мне нужно вызывать метод в одном из моих подклассов UIViewControllers каждый раз, когда нажимается элемент панели вкладок.
Есть предложения?
- (void)tabBarController:(UITabBarController *)theTabBarController didSelectViewController:(UIViewController *)viewController
{
NSLog(@"%@", [[self.tabBarController selectedViewController] nibName]); // nil, no success here
if ([theTabBarController selectedIndex] == 1) {
MySecondViewController *reference = (MySecondViewController *) viewController;
if ([reference isKindOfClass:[UINavigationController class]]) {
NSLog(@"OMG. It's a UINavigationController class??!"); // kicks in for some reason, shouldn't reference be a MySecondViewController
}
}