如何将标签栏项目连接到动作?

时间:2011-07-31 19:53:45

标签: cocoa-touch ios4 interface-builder uitabbar uitabbaritem

我有一个UIView,它有一个UITabBar,里面有4个UITabBarItem组件(都是从IB创建的)。

当有人点击标签栏中的项目时,我希望调用我的IBAction函数。但是我无法通过IB将tabbaritem连接到我的动作......我控制拖动“收到的动作”但它不允许我将它连接到tabbaritem。

由于 德肖恩

3 个答案:

答案 0 :(得分:14)

控制将标签栏拖到"文件所有者"在IB中并将其设置为委托。接下来将此代码放在viewcontroller.m文件中:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    if(item.tag == 0)
    {
        //party like its 1999 right here
    }
}

返回IB并使用标记设置标签栏中的每个标签栏项目。你必须在你的didSelectItem中测试每个案例,所以如果你有多个不同的标签集等等,无论如何我都是这样做的。

答案 1 :(得分:6)

您的问题是否还定义了UITabBarController。

如果你没有(正如我所假设的那样,如果你在IB中正确定义了东西,那么点击一个标签栏项应该可以工作),那么可以选择将UITabBarDelegate分配给你的UITabBar并定义tabBar:didSelectItem:

查看reference for UITabBarDelegate

答案 2 :(得分:0)

您无法为标签栏项目设置目标操作。他们应该总是有一个新观点。唯一的方法是 - 你应该使用代表确定你的tabbar项被触摸,然后处理在该委托中按下哪个选项卡。

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    if(item.tag == 1)
    {
    }
}

您应该从xcode中的属性为标签栏项设置标记值。