您的位置:首页 > 产品设计 > UI/UE

使用UITabBarController创建Tabbar获取tabBarItem的点击方法

2016-01-27 15:39 477 查看
项目中有涉及到拨号键盘的弹出,想要在点击控制器的时候键盘回收,再点击下面的Tabbar实现键盘出现.由于正常情况下,当在当前界面的时候,点击下面的tabbar是不再相应的.这里就需要找到能执行tabbar点击事件的代理方法.

第一步:需要在主控制器执行代理UITabBarControllerDelegate;

第二步:执行代理方法:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController.

这样的话即使是一直在此界面,点击对应的tabbar也会走这一步,可以在此方法写自己想要执行的操作.

举例代码如下:

第一步:设置代理:

@interface RootViewController ()<UITabBarControllerDelegate>


第二步:设置UITabBarController.

ViewController1 *hosterVC = [[ViewController1 alloc]init];
UINavigationController *hosterNC = [[UINavigationController alloc]initWithRootViewController:hosterVC];
hosterNC.navigationBar.translucent = NO;

ViewController2 *menuListVC = [[ViewController2 alloc]init];
UINavigationController *menuListNC = [[UINavigationController alloc]initWithRootViewController:menuListVC];
menuListNC.navigationBar.translucent = NO;

ViewController3 *healthMainVC = [[ViewController3 alloc]init];
UINavigationController *healthMainNC = [[UINavigationController alloc]initWithRootViewController:healthMainVC];
healthMainNC.navigationBar.translucent = NO;

ViewController4 *zhiShiVC = [[ViewController4 alloc]init];
UINavigationController *zhiShiNC = [[UINavigationController alloc]initWithRootViewController:zhiShiVC];
zhiShiNC.navigationBar.translucent = NO;

ViewController5 *sanCanVC = [[ViewController5 alloc]init];
UINavigationController *sanCanNC = [[UINavigationController alloc]initWithRootViewController:sanCanVC];
sanCanNC.navigationBar.translucent = NO;

UITabBarController *rootVC = [[UITabBarController alloc]init];
rootVC.viewControllers = @[menuListNC,healthMainNC,hosterNC,zhiShiNC,sanCanNC];

UITabBarItem *item1 = [[UITabBarItem alloc]initWithTitle:@"菜单" image:[UIImage imageNamed:@"11@2x.png.png"] tag:101];
UITabBarItem *item2 = [[UITabBarItem alloc]initWithTitle:@"养生" image:[UIImage imageNamed:@"12@2x.png.png"] tag:102];
UITabBarItem *item3 = [[UITabBarItem alloc]initWithTitle:@"我的" image:[UIImage imageNamed:@"iconfont-wode-4.png"] tag:103];
UITabBarItem *item4 = [[UITabBarItem alloc]initWithTitle:@"知识" image:[UIImage imageNamed:@"13@2x.png.png"] tag:104];
UITabBarItem *item5 = [[UITabBarItem alloc]initWithTitle:@"三餐" image:[UIImage imageNamed:@"14@2x.png.png"] tag:105];
menuListNC.tabBarItem = item1;
healthMainNC.tabBarItem = item2;
hosterNC.tabBarItem = item3;
zhiShiNC.tabBarItem = item4;
sanCanNC.tabBarItem = item5;

self.window.rootViewController = rootVC;


第三步:执行代理方法:

#pragma  mark -- UITabBarDelegate
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{

if (tabBarController == self.tabbar)
{

if ([viewController.tabBarItem.title isEqualToString:@"菜单"])
{
NSLog(@"执行你想要点击此tabBarItem执行的操作");

}
}
}


转载请注明出处.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: