标签栏控制器:在切换视图之前执行代码

时间:2014-11-06 17:07:18

标签: ios objective-c uitabbarcontroller tabbar uitabbaritem

我想在显示另一个视图之前执行一些代码,当用户在Tab Bar Controller中按下具有不同视图的Bar Item时。

我正在尝试在班上使用委托:

@interface HPAAddCarOverallInfoTableViewController () <UITabBarControllerDelegate>

我通过使用委托方法接近我的问题:

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

不幸的是,(UIViewController *)viewController包含有关所选视图控制器的信息,而不包含有关从哪个视图控制器中选择它的信息。

问题: 你能告诉我吗?我怎样才能获得信息,告诉我Tab Bar项目的显示视图是什么?

1 个答案:

答案 0 :(得分:4)

您可以在标签栏控制器委托中实施-tabBarController:shouldSelectViewController:。在实际选择新视图控制器之前,您将获得该消息,因此您可以找到当前选择的视图控制器,可能将其保存在ivar或其他内容中。也许你可以在那个方法中完成你需要做的工作,或者你可能要等到...didSelectViewController:消息,但无论哪种方式你都会知道旧的和新的视图控制器。