我有一个UIView,它有一个UITabBar,里面有4个UITabBarItem组件(都是从IB创建的)。
当有人点击标签栏中的项目时,我希望调用我的IBAction函数。但是我无法通过IB将tabbaritem连接到我的动作......我控制拖动“收到的动作”但它不允许我将它连接到tabbaritem。
由于 德肖恩
答案 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:
答案 2 :(得分:0)
您无法为标签栏项目设置目标操作。他们应该总是有一个新观点。唯一的方法是 - 你应该使用代表确定你的tabbar项被触摸,然后处理在该委托中按下哪个选项卡。
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
if(item.tag == 1)
{
}
}
您应该从xcode中的属性为标签栏项设置标记值。