【问题标题】:Get Tab Selection Event from UITabBar in a ViewController从 ViewController 中的 UITabBar 获取选项卡选择事件
【发布时间】:2012-07-06 20:58:53
【问题描述】:

我的 MainStoryboard 的结构是:

->Tab Bar Controller -> Navigation Controller -> View Controller (Search)

我想要的行为是当用户重新选择搜索选项卡时,它上面的 UIScrollView 滚动到顶部。但是,我不确定如何从 TabBarController 获取事件。

我一直在看很多关于 UITabBarDelegate 的东西,特别是:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item

虽然我有,但还没有设法让它正常工作。我非常不确定如何设置委托(假设是这样做的)。我已经尝试在 IB 中连接它,但它不会让我这样做。我还尝试从 AppDelegate 获取 UITabBar(在查看了一些看似相关的答案之后)。

任何指针都将不胜感激(除非它们为空)。

【问题讨论】:

    标签: objective-c xcode xcode4 delegates uitabbarcontroller


    【解决方案1】:
    UITabBar *aTabBar = [UITabBarItem alloc] init];
    

    ....您要对 aTabBar 进行的任何其他修改....

    [aTabBar setDelegate:self]
    

    【讨论】:

      【解决方案2】:

      不要忘记将“<UITabBarDelegate>”添加到您要指定为委托的任何对象的“@interface”部分。

      对于我自己的代码,我通常使用一些不是应用程序委托的对象(因为应用程序委托通常用于应用程序级别的事件,例如“应用程序正在暂停”或“应用程序即将到来回到前台”)。如果您将“<UITabBarDelegate>”添加到您的搜索视图控制器,请确保您对“didSelectItem”方法所做的任何事情都仅适用于搜索视图控制器。否则,如果您想根据正在显示的选项卡栏项目对各种视图控制器执行操作,则实例化一些不同的对象。

      【讨论】:

      • 我的搜索视图控制器上有 。不过,我想知道如何将其实际设置为委托。我尝试过的任何事情似乎都没有做到这一点。
      猜你喜欢
      • 1970-01-01
      • 2011-04-08
      • 2011-02-24
      • 1970-01-01
      • 2018-06-13
      • 2011-05-03
      • 2021-12-22
      • 2012-09-26
      • 1970-01-01
      相关资源
      最近更新 更多