如何捕获以编程方式更改的tabBarController setSelectedIndex

时间:2012-04-27 10:41:31

标签: iphone ios ipad uitabbarcontroller uitabbar

在我的应用程序中,我有一种情况,我以编程方式更改tabBarController的选定索引,如下所示

[self.tabBarController setSelectedIndex:0];

然后返回到包含UITableView的选项卡,此时我需要对tableView进行一些操作 我试图使用viewWillAppear并且它没有到达那里,我试图使视图委托像这样

@interface ThirdViewController : UITableViewController < UISearchBarDelegate,UINavigationControllerDelegate, UITabBarDelegate> 

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

它不起作用

任何人都知道该怎么做?

4 个答案:

答案 0 :(得分:2)

我注意到您的班级ThirdViewController实施了UITabBarDelegate,而tabBarController:didSelectViewController:实际上是UITabBarControllerDelegate协议的方法。

答案 1 :(得分:0)

请尝试以下代码:

self.tabBarController.selectedIndex = 1;

[self.tabBarController setSelectedIndex:1];

谢谢..!

更新:

您可以在代码下面为tabBarcontroller viewdidLoad方法设置委托:

tabBarController.delegate=self;

答案 2 :(得分:0)

我的解决方案是制作[[controller alloc] init]并激活一个函数,在控制器中执行我需要的东西,然后移动到

答案 3 :(得分:0)

我已经使用这个简单的函数来选择以编程方式查看我的UITabBarController中的控制器。

-(void)selectVCfromIndex:(int)index{

    self.selectedIndex = index;
    [self tabBarController:self shouldSelectViewController:[self.viewControllers objectAtIndex:index]];

}

在shoudSelectViewController协议中,我有用于呈现视图控制器的特定代码,这样当标签以编程方式和用户交互方式进行更改时,它就会运行。