zoukankan      html  css  js  c++  java
  • 学习笔记:Tab Bar 控件使用详解

    注意这里是:Tab Bar 不是Tab Bar Controller. Tab bar是继承UIView,所以可以添加到ViewController里。是View就可以add到另一个View上去。Tab Bar Controller是新建View视图。

    XX.h 里需要定义UITabBar,并且要引用协议 UITabBarDelegate.

    @interface LoginViewController :UIViewController<UITabBarDelegate>

    {

        UITabBar *tabbar;

    }

    @property (nonatomic, retain) UITabBar *tabbar;

    XX.m

    @synthesize tabbar;

    - (void)viewDidLoad

    {

        //加载Tab bar

        CGRect footFrame = CGRectMake(0, 420, 320, 60);

        tabbar = [[UITabBar alloc]initWithFrame:footFrame];

        

        UITabBarItem *item1 = [[UITabBarItem alloc]initWithTabBarSystemItem:1 tag:0];

        UITabBarItem *item2 = [[UITabBarItem alloc]initWithTabBarSystemItem:2 tag:1];

        NSArray *items = [[NSArray alloc]initWithObjects:item1,item2, nil];

        [tabbar setItems:items animated:YES];

        [item1 release];

        [item2 release];

        [items release];

        [self.view addSubview:tabbar];

        tabbar.delegate = self;//指定其代理方法,不然方法不起作用

        [tabbar release]; 

    }

    - (void)tabBar:(UITabBar *)tabbar didSelectItem:(UITabBarItem *)item 

    {

        NSLog(@"Selected is %d",item.tag);

        NSString *msg = [[NSString alloc]initWithFormat:@"selected is %d",item.tag];

        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"a" message:msg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];

        [alert show];

        [msg release];

        [alert release];

    }

    gwesley 2011-08-14 08:57
    给每个item添加一个tag
    然后在此方法中 如下判断
    switch(item.tag) {
    case 0:

    break
    case 1:

    break


    patrick_ren 2011-08-14 10:44
    - (void)tabBar:(UITabBar *)tb didSelectItem:(UITabBarItem *)item
    这个方法有要求一定要写在那儿吗?

    patrick_ren 2011-08-14 17:10
    好像没发调用啊,是不是还要在viewdidload里写东西啊?

    exphinx 2011-08-14 18:26
    - tabBar:didSelectItem: 是UITabBar的delegate方法,你给它设定delegate了吗?

    patrick_ren 2011-08-14 19:37
    设定了,在头文件里,对吗?

    patrick_ren 2011-08-14 20:22
    解决了,忘记写tb.delegate = self了~谢谢各位~

  • 相关阅读:
    25:最长最短单词
    09:向量点积计算
    08:石头剪刀布
    07:有趣的跳跃
    36:计算多项式的值
    33:计算分数加减表达式的值
    hdu 2289 Cup (二分法)
    Android-补间动画效果
    UVA 586 Instant Complexity
    企业门户(Portal)项目实施方略与开发指南
  • 原文地址:https://www.cnblogs.com/martin1009/p/2542171.html
Copyright © 2011-2022 走看看