iOS tabviewcontroller 三级控制器

ios 里的 三级控制器 是 一个 tabbar控制器 控制 多个 navigation 控制器, 然后每个 navigation  控制器 对应着  一个 view 

本项目 初始化分为两部分 : 视图初始化 , tabbar 初始化

//视图初始化
-(void)initView { //set view First *first=[[First alloc]init]; Second *second=[[Second alloc]init]; Third *third=[[Third alloc] init]; Fourth *fourth=[[Fourth alloc]init]; Fifth *fifth=[[Fifth alloc] init]; NSArray *array=@[first,second,third,fourth,fifth]; NSMutableArray *muarray=[NSMutableArray arrayWithCapacity:array.count]; for(int i=0;i<array.count;i++) {
    // 将 每个视图 放入 对应 的 navigation 控制器里 UINavigationController *navigation=[[UINavigationController alloc] initWithRootViewController:array[i]]; [muarray addObject:navigation]; } self.viewControllers=muarray; }

 

// tabbar  初始化
-(void)initTabbar { tabbar=[[UIView alloc] initWithFrame:CGRectMake(0, kscreenHeight-tabBarHeight, kscreenWidth, tabBarHeight)];
   //通过 image 的颜色 来 设置 背景颜色 tabbar.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"mask_navbar"]]; [self.view addSubview:tabbar]; NSArray *imgArray = @[@"home_tab_icon_1",@"home_tab_icon_2",@"home_tab_icon_3",@"home_tab_icon_4",@"home_tab_icon_5"];
  
  //给 tabbar 添加 按钮

  for(int i=0;i<imgArray.count;i++) { UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom]; [btn setBackgroundImage:[UIImage imageNamed:imgArray[i]] forState:UIControlStateNormal]; btn.frame=CGRectMake(btnWidth*i, (tabBarHeight-btnHeight)/2, btnWidth, btnHeight); btn.tag=100+i; [btn addTarget:self action:@selector(tabbtnclick:) forControlEvents:UIControlEventTouchUpInside]; [tabbar addSubview:btn]; } _selectimg=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, btnWidth, btnHeight)]; _selectimg.image=[UIImage imageNamed:@"home_bottom_tab_arrow"]; [tabbar addSubview:_selectimg]; //set tabbar }

  

//然后再设置按钮点击事件
-(void)tabbtnclick:(UIButton *)btn { //NSLog(@"%d",btn.tag);
  // self . selectedindex 是 跳转 view self.selectedIndex=btn.tag-100; [UIView animateWithDuration:0.2 animations:^{ _selectimg.center=btn.center; }]; }

  

//  视图 即将出现时调用的方法
-(void) viewWillAppear:(BOOL)animated { ViewController *ct=(ViewController *) self.tabBarController; [ct show:YES]; }

  

posted @ 2015-03-29 21:24  煮水丶  阅读(898)  评论(0编辑  收藏  举报