Как вызвать метод "tabBarController:didSelectViewController:" программно?

В настоящее время я пытаюсь вызвать метод "didSelectViewController" программно с помощью следующего кода:

self.tabController.selectedViewController 
        = [self.tabController.viewControllers objectAtIndex:NEWSTAB_INDEX];

однако метод 'didSelectViewController' не вызывался. Как я могу запустить метод без необходимости вручную выбирать панель вкладок?

2 ответов


self.tabController.selectedIndex = NEWSTAB_INDEX;   // to actually switch to the controller (your code would work as well) - not sure if this does or not send the didSelectViewController: message to the delegate
[self.tabController.delegate tabBarController:self.tabController didSelectViewController:[self.tabController.viewControllers objectAtIndex:NEWSTAB_INDEX]];  // send didSelectViewController to the tabBarController delegate

для swift 3.0 вы можете программно вызвать метод делегата tabbar следующим образом

self.tabController.selectedIndex = index (e.g. 0,1...etc)
self.tabController.delegate.tabBarController(self.tabController, didSelectViewController: self.tabController.viewControllers[index])