我想在显示另一个视图之前执行一些代码,当用户在Tab Bar Controller中按下具有不同视图的Bar Item时。
我正在尝试在班上使用委托:
@interface HPAAddCarOverallInfoTableViewController () <UITabBarControllerDelegate>
我通过使用委托方法接近我的问题:
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
不幸的是,(UIViewController *)viewController
包含有关所选视图控制器的信息,而不包含有关从哪个视图控制器中选择它的信息。
问题: 你能告诉我吗?我怎样才能获得信息,告诉我Tab Bar项目的显示视图是什么?
答案 0 :(得分:4)
您可以在标签栏控制器委托中实施-tabBarController:shouldSelectViewController:
。在实际选择新视图控制器之前,您将获得该消息,因此您可以找到当前选择的视图控制器,可能将其保存在ivar或其他内容中。也许你可以在那个方法中完成你需要做的工作,或者你可能要等到...didSelectViewController:
消息,但无论哪种方式你都会知道旧的和新的视图控制器。