如何给TTTabBar,TTTabGrid,TTTabStrip加上事件

来源:互联网 发布:笔记本网络插口松动 编辑:程序博客网 时间:2024/05/22 05:02

  在Three20的例子程序中没有找到如何获取TTTabBar、TTTabGrid、TTTabStrip的事件如何处理,也就是说以上三个类管理的TTTabItem对象被选择时,没有收到消息。经过对相关类的原代码进行分析,跟踪,发现,在TTTabBar中有一个deletage变量,该变量是TTTabDelegate类型,因此,对消息处理马上有思路了。如下,几步就可以获取消息了。

1.在TabBarTestController.h中的头文件进行修改,加入<TTTabDelegate>。如下:

   @interface TabBarTestController :TTViewController<TTTabDelegate

2.在TabBarTestController.m中进行修改,加入

  // 回调设置

  _tabBar1.delegate =self;

3.实现delegate的回调接口函数,如下:

//

// deletage for tab select event

//

- (void)tabBar:(TTTabBar*)tabBar tabSelected:(NSInteger)selectedIndex

{

  if([tabBarisKindOfClass:[TTTabStripclass]])

  {

   NSLog(@"TTabStrip select:%d", selectedIndex);

  }elseif([tabBar isKindOfClass:[TTTabGridclass]])

  {

   NSLog(@"TTTabGrid select:%d", selectedIndex);

  }else if([tabBar isKindOfClass:[TTTabBarclass]])

  {

   NSLog(@"TTTabBar select:%d", selectedIndex);

  }

}


Run一下,即可以看到输出的结果如下:

2012-12-28 14:56:54.201 TTCatalog[6709:11303] TTTabBar select:0

2012-12-28 14:56:56.185 TTCatalog[6709:11303] TTTabBar select:1

2012-12-28 14:56:57.184 TTCatalog[6709:11303] TTTabBar select:2

2012-12-28 14:56:58.072 TTCatalog[6709:11303] TTTabBar select:3

2012-12-28 14:57:01.185 TTCatalog[6709:11303] TTTabGrid select:1

2012-12-28 14:57:02.105 TTCatalog[6709:11303] TTTabGrid select:2