如何在iphone中没有tabbarcontroller的情况下获得tabbar click事件?

时间:2011-09-21 06:32:00

标签: iphone uitabbarcontroller uitabbar

我正在尝试在第二个视图中实现tabbar。 我能够在其上放置5个项目的tabbar。我知道要处理这些点击事件,我必须使用tabbarcontroller。

我的问题是,在视图上看tabbar,  如何在没有tabbarcontroller的情况下调用每个项目选择的方法? (我的假设是tabbar是一个像按钮这样的对象,我们可以通过编程方式为它编写一个click方法。因此,如果没有Tab Controller,我们可以访问所选项目方法) 有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

如果您不想使用tabbarcontroller,那么最好使用Segmented Control。 它有类似的操作和它也很简单易用。使用需要在视图和视图上创建多个uiviews和他们一起玩Hide-n-seek。如果你想要我有一些代码。如果你愿意,可以在这里粘贴。

答案 1 :(得分:1)

我想,你可以这样做。 (***注意:它没有经过测试的代码)

在.h文件中添加<UITabBarDelegate>

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    if(item == firstItem)
        NSLog(@"Did Select Here”);
    else if(item == firstItem)
        NSLog(@"Did Select Here”);
}

答案 2 :(得分:0)

在.h文件中创建UITabbar并定义UITabbarDelegate,并在相应的视图中编写以下代码:

  - (void)viewDidLoad {
        [super viewDidLoad];
        UITabBarItem * newItem1 = [[UITabBarItem alloc] initWithTitle:@"First" image:[UIImage imageNamed:@"setting.png"] tag:1];
        UITabBarItem * newItem2 = [[UITabBarItem alloc] initWithTitle:@"Second" image:[UIImage imageNamed:@"setting.png"] tag:2];
        UITabBarItem * newItem3 = [[UITabBarItem alloc] initWithTitle:@"Third" image:[UIImage imageNamed:@"setting.png"] tag:3];

    [tabbar setItems:[NSArray arrayWithObjects:newItem1,newItem2,newItem3,nil]];
        tabbar.delegate = self;
    }

    - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
        NSLog(@"Tabbar selected itm %d",item.tag);
        switch (item.tag) {
            case 1:
                //first selected
                break;
            case 2:
                //second selected
                break;
            case 3:
                //third selected
                break;
            default:
                break;
        }
    }