如何以编程方式触发方法“tabBarController:didSelectViewController:”?

时间:2011-09-17 08:29:05

标签: objective-c ios uiviewcontroller uitabbarcontroller

目前,我正尝试通过以下代码以编程方式触发'didSelectViewController'方法:

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

然而,没有调用'didSelectViewController'方法。如何在不必手动选择标签栏的情况下触发方法?

2 个答案:

答案 0 :(得分:16)

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

答案 1 :(得分:0)

对于swift 3.0 您可以通过编程方式调用tabbar委托方法,如下所示

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