使用场景:

实现底部Tabbar两个TabBarItem,点击第二个跳转push到个人信息页面:

实现步骤:

  • 首先设置UITabBarController的代理为appdelegate如下:myTabBar.delegate = self;

  • 然后在interface后面写上代理<UITabBarControllerDelegate>

  • 实现代理里面的- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController方法即可

代码如下:

  1. #pragma mark - 跳转对应的页面
  2.  
  3. -(void)jumpToMainVC:(NSString *)messageBadgeNumStr {
  4.  
  5. self.tabBarController = [[UITabBarController alloc] init];
  6. self.tabBarController.delegate = self;
  7. HomeViewController *homeVC = [[HomeViewController alloc] init];
  8. self.tabBarController.viewControllers = @[[self navigationControllerWithFirstViewController:homeVC], [UIViewController new]];
  9. NSArray *titles = @[@"首页", @"我的"];
  10. NSArray *images = @[@"home_tab_home", @"home_tab_mine"];
  11. [self.tabBarController.tabBar.items enumerateObjectsUsingBlock:^(UITabBarItem *item, NSUInteger idx, BOOL *stop) {
  12. [item setTitle:titles[idx]];
  13. [item setImage:[[UIImage imageNamed:images[idx]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
  14. [item setSelectedImage:[[UIImage imageNamed:[images[idx] stringByAppendingString:@"pre"]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
  15.  
  16. CGFloat verticalOffSet = ;
  17. UIEdgeInsets edgeInsets = item.imageInsets;
  18. edgeInsets.top = -verticalOffSet;
  19. edgeInsets.bottom = verticalOffSet;
  20. item.imageInsets = edgeInsets;
  21. [item setTitlePositionAdjustment:UIOffsetMake(, -verticalOffSet)];
  22. item.tag = idx;
  23. }];
  24. self.window.rootViewController = self.tabBarController;
  25. }

实现跳转代理:

  1. #pragma mark - UITabBarControllerDelegate
  2.  
  3. - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
  4. if (viewController.tabBarItem.tag == ) {
  5. UserInfoViewController *userInfoVC = [[UserInfoViewController alloc] init];
  6. UINavigationController *nav = self.tabBarController.selectedViewController;
  7. [nav pushViewController:userInfoVC animated:YES];
  8. return NO;
  9. }
  10. return YES;
  11. }

iOS开发之点击tabBarItem进行Push一个页面的更多相关文章

  1. 李洪强iOS开发之- 点击屏幕遮挡键盘

    李洪强iOS开发之- 点击屏幕遮挡键盘 实现的效果:  01 - 给当前的view添加点击事件,使点击屏幕的时候,让键盘退出 /** * 点击屏幕 隐藏键盘 * * @param tap */-(vo ...

  2. iOS开发~防止navigation多次push一个页面

    在点击push下一个页面时,因为各种原因,点一下cell或按钮没有响应,用户可能就多点几下,这时候会打开好几个一样的页面. 这是因为push后的页面有耗时操作或者刚好push到另一个页面时,另一个页面 ...

  3. 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】02-第一个C语言程序

    前言 前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法.学习任何一门语言,首先要掌握的肯定是语法.学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算 ...

  4. iOS开发之--如何修改TabBarItem的title的字体和颜色/BarButtonItem的title的字体大小和颜色/添加背景图片,并添加点击方法

    在进行项目的过程中,我们往往会遇到各种各样的自定义颜色和字体,下面提供一种修改系统自带的TabBarItem的字体和颜色的方法,希望能帮到大家: [[UITabBarItem appearance] ...

  5. ios开发图片点击放大

    图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现 创建了一个专门用于放大图片的类,以下为.h文件 #import <Foundation/Foundation. ...

  6. IOS开发中--点击imageView上的Button没有任何反应

    点击imageView上的Button没有任何反应:    解决方法:设置图片的userInteractionEnabled为YES,使该imageView可以与用户进行交互

  7. iOS开发 tableView点击下拉扩展 + 内嵌collectionView上传图片效果

    ---恢复内容开始--- //需要的效果 1.设置window的根视图控制器为一个UITableViewController #import "AppDelegate.h"#imp ...

  8. iOS开发--用户点击频繁,多个异步网络请求取消问题?

    一.业务环境描述 当一个view同时添加两个tableView为subView的时候,两个tableView分别为mainTable和subTable. 当用户点击mainTable上的某一条数据时, ...

  9. iOS开发之--storyboary下,拖拽一个tableview/collectionView/view 等,顶端下沉64个像素的处理方法

    大家可能会发现,在sb或者xib里面拖拽一个tableview/collectionview/view的,顶端会自动下沉64个像素,也就是说,运行在模拟器上去,自导航下面又自动下沉了64个像素, 那是 ...

随机推荐

  1. Python标准库: turtle--海龟绘图。

    turtle --- 海龟绘图 (点击查看官方文档.) 简介 import turtle # 调用该库.Turtle的实例对象,默认命名为turtle. turtle.forward(10) from ...

  2. Hadoop-No.6之文件在HDFS中的位置

    在设计一种HDFS模式时,首先应该决定文件的位置.标准化的位置会使得团队之间更容易查找和共享数据. 推荐HDFS目录结构实例.目录结构简化了不同组和用户的权限分配 /user/{username} 只 ...

  3. Acwing-196-质数距离(素数区间筛法)

    链接: https://www.acwing.com/problem/content/198/ 题意: 给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2-C ...

  4. JavaScript 实现文件下载并重命名

    第一种是HTML官网中的方法<a href="/images/liang.jpg" download="文件名称">HTML5 中 a 标签提供了一 ...

  5. 关于lower_bound()和upper_bound()

    关于lower_bound()和upper_bound(): 参考:关于lower_bound( )和upper_bound( )的常见用法 注意:查找的数组必须要是排好序的.因为,它们查找的方式也是 ...

  6. ARTS打卡计划第三周

    Algorithms: https://leetcode-cn.com/problems/4sum/ 算法是先排序,然后按照一次循环按照三个数和两边逼中,考虑去重. Review: https://w ...

  7. JavaScript数字计算精度丢失的问题和解决方案

    一.JS数字精度丢失的一些典型问题 1. 两个简单的浮点数相加:0.1 + 0.2 != 0.3 // true,下图是firebug的控制台截图: 看看java的计算结果:是不是让你很不能接受 再来 ...

  8. (转载)深入理解Java:内省(Introspector)

    本文转载自:https://www.cnblogs.com/peida/archive/2013/06/03/3090842.html 一些概念: 内省(Introspector) 是Java 语言对 ...

  9. TCP输出 之 tcp_write_xmit

    概述 tcp_write_xmit函数完成对待发送数据的分段发送,过程中会遍历发送队列,进行窗口检查,需要TSO分段则分段,然后调用tcp_transmit_skb发送数据段: 源码分析 static ...

  10. 2018-2019-2 20165215《网络对抗技术》Exp8 Web基础

    目录 实验内容 基础问题回答 实验步骤 (一)Web前端HTML (二) Web前端javascipt (三)Web后端:MySQL基础:正常安装.启动MySQL,建库.创建用户.修改密码.建表 (四 ...