在我的应用程序中,我有一种情况,我以编程方式更改tabBarController的选定索引,如下所示
[self.tabBarController setSelectedIndex:0];
然后返回到包含UITableView的选项卡,此时我需要对tableView进行一些操作 我试图使用viewWillAppear并且它没有到达那里,我试图使视图委托像这样
@interface ThirdViewController : UITableViewController < UISearchBarDelegate,UINavigationControllerDelegate, UITabBarDelegate>
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
它不起作用
任何人都知道该怎么做?
答案 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协议中,我有用于呈现视图控制器的特定代码,这样当标签以编程方式和用户交互方式进行更改时,它就会运行。