【IOS 开发学习总结-OC-58】★UI控件——UITabBar 与UITabBarController
来源:互联网 发布:淘宝怎么批量发布宝贝 编辑:程序博客网 时间:2024/06/10 19:56
【IOS 开发学习总结-OC-58】UI控件——UITabBar 与UITabBarController
UITabBarController会在屏幕底部提供一个UITabBar(这是自带的),随着用户对不同标签的点击,应用呈现不同的内容。
一般的说,UITabBarController管理多个控制器比较合适也比较方便。
UITabBar——标签栏
UITabBar可以单独使用。IB 界面或者代码添加。
IB 界面中该控件的属性:
UITabBarItem
UITabBarItem代表一个标签项。可以通过方法创建,也可在 IB界面创建。 badgeValue——可用来设置徽标。如下图,红色的数字。
如何监听用户单击了那个标签项
需要为UITabBar设置一个delegate 属性值即可(实现UITabBarDelegate协议的对象)。
当用户选中某个标签项时,会激发 UITabBarDelegate 协议中的-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item;
方法。
使用UITabBar的步骤
创建一个UITabBar对象——》创建多个UITabBarItem对象,并将他们设置给UITabBar——》为UITabBar对象设置一个UITabBarDelegate对象,用于检测用户的选中事件。
示例:
实现代码:
.h文件:
#import <UIKit/UIKit.h>@interface FKViewController : UIViewController <UITabBarDelegate>@end
.m文件:
#import "FKViewController.h"@interface FKViewController ()@end@implementation FKViewController- (void)viewDidLoad{ [super viewDidLoad]; // 创建UITabBar对象 UITabBar* tabBar = [[UITabBar alloc] initWithFrame: CGRectMake(0 ,440 ,320,40)]; tabBar.delegate = self; // 将tabBar添加到标签条中 [self.view addSubview:tabBar]; // 使用系统图标创建标签项 UITabBarItem* tabItem1 = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemHistory tag:0]; // 使用用户图标创建标签项 UITabBarItem* tabItem2 = [[UITabBarItem alloc] initWithTitle:@"疯狂软件" image: [UIImage imageNamed:@"fkit.png"] tag:1]; tabItem2.badgeValue = @"热"; // 使用用户图标创建标签项 UITabBarItem* tabItem3 = [[UITabBarItem alloc] initWithTitle:@"用户信息" image: [UIImage imageNamed:@"user.gif"] tag:2]; // 为UITabBar设置多个标签项 tabBar.items = [NSArray arrayWithObjects:tabItem1, tabItem2 , tabItem3, nil];}// 由UITabBarDelegate定义的方法,当用户选中某个标签项时激发该方法。- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{ NSString* msg = [NSString stringWithFormat:@"您选中第【%d】项" , item.tag]; // 创建、并显示一个UIAlertView控件 UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show];}@end
UITabBarController——标签栏控制器
通常都是使用UITabBarController管理多个视图控制器。
UITabBarController包含的各 UI 控件。
使用UITabBarController的步骤:
1. 创建UITabBarController——通常作为程序窗口的根控制器;
2. 依次创建多个 UIViewController 子类的实例。
3. 将多个UIViewController 子类的实例组合成 NSArray 对象,并将这个NSArray 对象设置成UITabBarController的 viewControllers 属性。
4. 重写UIViewController 子类的 init 或 initWithXXX 方法——在这里面设置 tabItem 属性,设为UITabBarItem 对象——标签页对应的标签项。
示例程序代码片:
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ if ([super initWithNibName:nibNameOrNil bundle:nibBundleOrNil] != nil) { // 为该控制器设置标签项 self.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"作者信息" image:[UIImage imageNamed:@"user.gif"] tag:2]; } return self;}
- (id)initWithStyle:(UITableViewStyle)style{ if ([super initWithStyle:style] != nil) { UITabBarItem* item = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:1]; // 为标签项设置徽标 item.badgeValue = @"热"; // 为该控制器设置标签项 self.tabBarItem = item; } return self;}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ // 创建程序窗口 self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]]; // 创建UITabBarController self.tabBarController = [[UITabBarController alloc] init]; // 创建FKViewController对象 FKViewController* viewController = [[FKViewController alloc] initWithNibName:@"FKViewController" bundle:nil]; // 创建FKBookListController对象 FKBookListController* bookListController = [[FKBookListController alloc] initWithStyle:UITableViewStyleGrouped]; // 为UITabBarController设置多个视图控制器 // 如果希望UITabBarController显示几个Tab页, // 就为UITabBarController添加几个视图控制器 self.tabBarController.viewControllers = [NSArray arrayWithObjects:bookListController , viewController, nil]; // 将UITabBarController设置为窗口的根控制器 self.window.rootViewController = self.tabBarController; [self.window makeKeyAndVisible]; return YES;}
- 【IOS 开发学习总结-OC-58】★UI控件——UITabBar 与UITabBarController
- 【IOS 开发学习总结-OC-51】★★★ios开发之UI控件——UITableView 与UITableViewCell
- 【IOS 开发学习总结-OC-45】★★ios开发之UI控件——UISegmentedControl与UIImageView
- 【IOS 开发学习总结-OC-48】★★ios开发之UI控件——UIDatePicker与 UIPickerView
- 【IOS 开发学习总结-OC-49】★★ios开发之UI控件——UIStepper与UIWebView
- 【IOS 开发学习总结-OC-53】★★ios开发UI 控件——UISearchBar与UISearchDisplayController
- 【IOS 开发学习总结-OC-54】★★ios开发UI 控件——UINavigationBar 与UINavigationController
- 【IOS 开发学习总结-OC-47】★ios开发之UI控件——UIAlertView与 UIActionSheet
- 【IOS 开发学习总结-OC-42】★ios开发——UI控件之UIControl基类
- 【IOS 开发学习总结-OC-50】★ios开发之UI控件——UIToolBar(工具栏)
- 【IOS 开发学习总结-OC-59】UI控件——UIPageControl 与UIPageViewController
- 【IOS 开发学习总结-OC-41】★★ios开发——代码控制 UI 界面与 UI 控件的自定义
- 【IOS 开发学习总结-OC-46】★ios开发之UI控件——UIProgressView 与 UISlider(另:可拉伸图片)
- 【IOS 开发学习总结-OC-44】★★ios开发之UI控件——文本框与多行文本控件(彩蛋——上拉刷新一般实现代码)
- iOS开发UI篇—UITabBarController使用
- 【IOS 开发学习总结-OC-57】★UI之UICollectionView 与UICollectionViewController
- 【IOS 开发学习总结-OC-40】★★ios开发之事件机制——控件获取方式与事件处理方式
- IOS开发学习笔记——UITabBarController
- Nginx Location配置总结
- Surrounded Regions
- 芝诺悖论:“人永远追不上乌龟” p.s.飞箭不动悖论
- HTML5——Web Worker使用方法
- ubuntu编译内核
- 【IOS 开发学习总结-OC-58】★UI控件——UITabBar 与UITabBarController
- 在COIDE下使用uCOS-II的一些问题
- win8 64位系统编译boost
- hdu1251解题报告
- linux下免秘钥登录
- HTTP协议和HTTPS协议详解
- 数据结构例程——从根节点到每个叶子节点的路径之逆
- libsvm中的dec_values以及分类结果评分问题
- Troubleshooting ‘DFS lock handle’ waits