【问题标题】:Tab Bar Controller: executing code before switching view标签栏控制器:在切换视图之前执行代码
【发布时间】:2015-01-03 07:13:54
【问题描述】:

我想在显示另一个视图之前执行一些代码,当用户在标签栏控制器中推送具有不同视图的栏项时。

我正在尝试在我的班级中使用委托:

@interface HPAAddCarOverallInfoTableViewController () <UITabBarControllerDelegate>

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

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

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

问题: 你能告诉我吗,拜托。如何获取信息,这些信息将告诉我从哪个显示视图中推送了标签栏项?

【问题讨论】:

    标签: ios objective-c uitabbarcontroller tabbar uitabbaritem


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复!我必须知道有关当前标签栏的信息。我想,正如您提到的那样,最好的方法是存储有关先前选择的标签栏的信息。因为,正如我所见,委托方法只能为您提供有关所选标签栏的信息,而不是先前选择的标签栏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 2011-02-12
    相关资源
    最近更新 更多