使用UITabBarController创建Tabbar获取tabBarItem的点击方法
2016-01-27 15:39
477 查看
项目中有涉及到拨号键盘的弹出,想要在点击控制器的时候键盘回收,再点击下面的Tabbar实现键盘出现.由于正常情况下,当在当前界面的时候,点击下面的tabbar是不再相应的.这里就需要找到能执行tabbar点击事件的代理方法.
第一步:需要在主控制器执行代理UITabBarControllerDelegate;
第二步:执行代理方法:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController.
这样的话即使是一直在此界面,点击对应的tabbar也会走这一步,可以在此方法写自己想要执行的操作.
举例代码如下:
第一步:设置代理:
第二步:设置UITabBarController.
第三步:执行代理方法:
转载请注明出处.
第一步:需要在主控制器执行代理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执行的操作"); } } }
转载请注明出处.
相关文章推荐
- UITabBarController和UINavigationController的整合使用
- Speeding up Gradle builds
- 交互设计的用户行为模式十二项 【转载】
- UITableViewCell中的bug
- Please specify exact device preset UUID
- build and install everything into local directory
- 给GPUImage录制的视频添加水印
- Customizing Your Build With Gradle
- ViewPager强制刷新UI
- UISearchDisplayController 底部留白
- require文件失败的解决
- 动态获取UITextView 高度
- Java - String, StringBuffer and StringBuilder
- 两个UIViewController之间的翻转可以用动画效果翻转(上下,左右)--跨界面之间的视图切换
- HDU-4908-BestCoder Sequence【思维题】
- RESTEasy数据自动装配之@QueryParam
- ClassNotFound: edu.emory.mathcs.backport.java.util.concurrent.BlockingQueue
- UIScrollView 实践经验
- 解决VirtualBox分辨率太小及VBoxGuestAdditions_4.3.12.iso下载地址
- druid数据源例子