标签
1.建立第一个视图,用第一种方式
FirstViewController *fv = [[FirstViewController alloc]init];
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:fv];
nav.title = @"home";
nav.tabBarItem.image = [[UIImage imageNamed:@"[email protected]"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
2.建立第二个视图第二种方法
UIViewController *nav1 = [[SecondViewController alloc]init];
三个参数分别是,文字标题,普通状态写的状态图片,点击之后的图片状态
UITabBarItem *ietm = [[UITabBarItem alloc]initWithTitle:@"secondPage" image:[UIImage imageNamed:@"[email protected]"] selectedImage:[UIImage imageNamed:@"[email protected]"]];
nav1.tabBarItem = ietm;
3.第三种方法创建
UINavigationController *nav2 = [[UINavigationController alloc]initWithRootViewController:[[ThirdViewController alloc]init]];
UITabBarItem *ietm2 = [[UITabBarItem alloc]initWithTitle:@"thirdPage" image:[UIImage imageNamed:@"[email protected]"] tag:100];
定义选择之后的图片
ietm2.selectedImage = [UIImage imageNamed:@"[email protected]"];
nav2.tabBarItem = ietm2;
4.第四种方法使用系统的样式创建,图片和文字都无法修改
UINavigationController *nav3 = [[UINavigationController alloc]initWithRootViewController:[[FourthViewController alloc]init]];
使用系统的形式去创建这里是无法修改的
nav3.tabBarItem = [[UITabBarItem alloc]initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:200 ];
这里都是无法修改的
nav3.tabBarItem.title = @"fourPage";
一共四种方法,我们去创建第五个
UINavigationController *nav4 = [[UINavigationController alloc]initWithRootViewController:[[FifthViewController alloc]init]];
UITabBarItem *ietm4 = [[UITabBarItem alloc]initWithTitle:@"fivePage" image:[UIImage imageNamed:@"[email protected]"] tag:300];
nav4.tabBarItem = ietm4;
这里是创建第六个
UINavigationController *nav5 = [[UINavigationController alloc]initWithRootViewController:[[SixViewController alloc]init]];
UITabBarItem *ietm5 = [[UITabBarItem alloc]initWithTitle:@"sixPage" image:[UIImage imageNamed:@"[email protected]"] tag:400];
nav5.tabBarItem = ietm5;
当我们创建的标签多余五个之后系统就会把最后一个默认为more放在另一个界面保存
创建标签
UITabBarController *tab = [[UITabBarController alloc]init];
将视图加入标签,这里加入是以数组的形式
tab.viewControllers = @[nav,nav1,nav2,nav3,nav4,nav5];
使用代理在点h里引入代理,会自动执行下面的代理方法
tab.delegate = self;
self.window.rootViewController = tab;
在程序启动后用户,选择某一个界面,则保存元状态这里使用的是沙盒存储,使用代理
NSInteger index = [[[NSUserDefaults standardUserDefaults]valueForKey:@"selectedindex" ] integerValue];
设置tab选中的标签
tab.selectedIndex = index;
设置标签上的一个灰标,用来提示用户
ietm.badgeValue = @"30";
设置系统的一个图表提示
[[UIApplication sharedApplication]setApplicationIconBadgeNumber:50];
return YES;
}
5.选中某一个视图控制器的时候,调用该方法
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
使用沙盒存数据
[[NSUserDefaults standardUserDefaults]setValue:@(tabBarController.selectedIndex) forKey:@"selectedindex"];
[[NSUserDefaults standardUserDefaults]synchronize];
}
6. 自定义视图控制器完成的时候调用
-(void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed{
}
自定义标签(具体代码)
1.隐藏系统的标签栏
3.创建所有的视图控制器
2.创建一个新标签栏
4.创建所有标签
5.标签和视图控制器进行关联