UitabBarViewController

1.准备好要用到的ViewController的若干个子类.(一共有几个item就有几个viewController)

2.将这些view放入tabBar中。

- (IBAction)enterBarDemo:(id)sender {

    

    NSMutableArray * items = [[NSMutableArrayalloc]init];


    TestOneController* testOne = [[TestOneControlleralloc]init];

    [items addObject:testOne];


    TestTwoController *testTwo = [[TestTwoControlleralloc]init];

    [items addObject:testTwo];

    //放入item数组中。

    TestThirdViewController* testthird = [[TestThirdViewControlleralloc]init];

    [itemsaddObject:testthird];

    


    TabBarViewController* tabBar = [[TabBarViewControlleralloc]init];

    [tabBar setTitle:@"TabBarController"];

    [tabBarsetViewControllers:items]; //数组放入tabBar中   

    [selfpresentModalViewController:tabBar animated:NO];

    

}


3、添加UITabBarItem

在三个ViewController.m文件里添加对应的UITabBarItem,代码如下

  1. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil  
  2. {  
  3.     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];  
  4.     if (self) {  
  5.         UITabBarItem *item = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemMostRecent tag:1];  
  6.         self.tabBarItem = item;  
  7.         self.tabBarItem.badgeValue = [NSString stringWithFormat:@"%d",9];  
  8.     }  
  9.     return self;  
  10. }  

UITabBarSystemItemMostRecent这个item的风格常量,可以根据喜好改变。除此之外还可以用自定义的图片做为item。这里就不演示自己添加图片的方式了。

self.tabBarItem.badgeValue 这个在tabbar item上显示泡泡的数字。

对应的其他ViewController都添加上,tag写不同的数字,后面要用到的。现在运行就有效果了

4、监听Item的点击事件

实现UITabBarDelegate, - ( void )tabBar:( UITabBar  *)tabBar didSelectItem:( UITabBarItem  *)item这个方法即可监听
  1. - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item  
  2. {  
  3.     if(item.tag == 1){  
  4.         NSLog(@"TestOneController");  
  5.     }else if(item.tag == 2){  
  6.         NSLog(@"TestTwoController");  
  7.     }else {  
  8.         NSLog(@"TestThirdController");  
  9.     }  
  10. }  


  1. - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item  
  2. {  
  3.     if(item.tag == 1){  
  4.         NSLog(@"TestOneController");  
  5.     }else if(item.tag == 2){  
  6.         NSLog(@"TestTwoController");  
  7.     }else {  
  8.         NSLog(@"TestThirdController");  
  9.     }  
  10. }  

你可能感兴趣的:(ios)