【问题标题】:Detecting if a user switches tabs inside a UITabBar on the iPhone?检测用户是否在 iPhone 上的 UITabBar 内切换选项卡?
【发布时间】:2011-12-30 15:54:37
【问题描述】:

早安,

我遇到了一点问题。我想跟踪应用程序的用户行为。该应用程序有一个带有 5 个标签的标签栏。每次用户切换标签时,我都想知道它。这就是我想做的。

我应该在这里使用哪种方法?

viewWillAppear/viewDidAppear 没有被调用。

UINavigationController 实际上把这个 UITabBar 作为 UINavigationController 的根视图(我描述的对吗?)。非常清楚,用户启动应用程序。有几个按钮。如果您按下其中一个,您将被带到带有 5 个相关选项卡的 UITabBar。 (在 UITabBar 中有一个 UINavigationBar 会带你回到主屏幕。)。当用户按下 tab1、tab2、tab3、tab4、tab5 时,我如何得到通知——无论这些选项卡按哪个顺序或按了多少次?

我需要实现 UINavigationController 委托吗?如果是这样,我不确定将代码放在哪里。还是有更简单的?

谢谢!

【问题讨论】:

    标签: iphone uinavigationcontroller uitabbar viewwillappear


    【解决方案1】:

    查看UITabBarControllerDelegate 协议。将 tabBarController 的委托设置为 self(很可能)并实现 tabBarController:didSelectViewController:

    【讨论】:

    • 感谢您的帮助。不幸的是,我认为我需要使用 UITabBar,而不是完整的控制器,因为我有一个自定义的 UITabBar(它有 10 个标签,并且标签栏水平滑动。这与标准的 TabBar 形成对比,它使您单击“更多" 选项卡,如果你想拥有超过 5 个选项卡。知道这个约束,还有其他方法吗?我看到一个 UITabBar 协议,它有一个 didselectItem 方法,我已经在使用,但你认为这可能有效吗?我会试一试。我认为它可能会奏效。我发帖时考虑到其他人在同一条船上。
    • 哦,我明白了...所以是的,UITabBar 委托方法可能会允许您实现相同的目标,因为它会告诉您何时选择了每个选项卡,并且您可以从中执行什么操作你需要做的。
    【解决方案2】:

    使用 UITabbarControllerDelegate 并为 UITabbarController 提供委托,它将采用此协议。

    【讨论】:

      猜你喜欢
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      • 2011-01-19
      相关资源
      最近更新 更多