1

在我的应用程序中,我有一种情况,我像这样以编程方式更改 tabBarController 的选定索引

[self.tabBarController setSelectedIndex:0];

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

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

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

它没有用

有人知道怎么做吗?

4

4 回答 4

2

我注意到你的类ThirdViewController实现了UITabBarDelegate,而tabBarController:didSelectViewController:实际上是UITabBarControllerDelegate协议的一种方法。

于 2012-04-28T06:35:10.920 回答
0

对我来说,解决方案是制作 [[controller alloc]init] 并激活一个函数,在我移动到的控制器中做我需要的事情

于 2012-04-28T06:29:23.213 回答
0

我制作了这个简单的函数来在我的 UITabBarController 中以编程方式选择视图控制器。

-(void)selectVCfromIndex:(int)index{

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

}

在 shoudSelectViewController 协议中,我有用于呈现视图控制器的特定代码,并以这种方式在选项卡以编程方式和用户交互方式更改时运行。

于 2014-01-17T16:04:58.290 回答
0

Try this below code:

self.tabBarController.selectedIndex = 1;

or

[self.tabBarController setSelectedIndex:1];

Thanks..!

UPDATE :

you can set delegate for tabBarcontroller viewdidLoad method below code:

tabBarController.delegate=self;
于 2012-04-27T10:44:51.963 回答