Определение того, какому подклассу UIViewController принадлежит элемент UITabBar - PullRequest
0 голосов
/ 16 сентября 2010

У меня в приложении 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
    }   
}

1 Ответ

0 голосов
/ 23 сентября 2010

Возможно, я не правильно понимаю ваш вопрос, но кажется, что вы запрашиваете просто параметр "viewController", который передается в вызов метода, который вы упомянули

- (void)tabBarController:(UITabBarController *)theTabBarController didSelectViewController:(UIViewController *)viewController

UITabBarControllerтакже есть свойство, чтобы получить ту же информацию

@property(nonatomic, assign) UIViewController *selectedViewController
...