iOS开发-自定义TabBarController添加跳转控制器并且进行封装(根据自定义TabBar)

iOS小技能:自定义导航栏控制器 代码UI综合练习-网易彩票1、自定义UITarBarController 和TabBar1)如何自定义TarBar-- 为了减小iOS系统版本间的风格差异 首先要自定义UITabBarController:新建一个类,继承自UITabBarController自定义TabBar新建一个类,继承自UIView,用来做TabBar,封装内部的按钮 在自定义的UITabBarController中创建自定 阅读详情

//

//  ZZTabBarController.h

//  ZZ_APP主流框架

//

//  Created by ZZ_Macpro on 15/10/9.

//  Copyright (c) 2015年 ZZ_Macpro. All rights reserved.

//

 

#import <UIKit/UIKit.h>

 

@interface ZZTabBarController :UITabBarController

 

@end

 

 

//

//  ZZTabBarController.m

//  ZZ_APP主流框架

//

//  Created by ZZ_Macpro on 15/10/9.

//  Copyright (c) 2015年 ZZ_Macpro. All rights reserved.

//

 

#import "ZZTabBarController.h"

#import "ZZHomeController.h"

#import "ZZMeController.h"

#import "ZZDiscoverController.h"

#import "ZZMessageController.h"

#import "ZZComposeController.h"

#import "ZZTabBar.h"

#import "ZZNavigationController.h"

 

@interface ZZTabBarController () <ZZTabBarDelegate>

@property (nonatomic,weak)ZZTabBar *customTabBar;

@end

 

@implementation ZZTabBarController

 

- (void)viewDidLoad {

    [superviewDidLoad];

    

    // 1.初始化tabbar

    [selfsetupTabBar];

    

    // 2.初始化子控制器

    [selfsetupChildViewControllers];

}

 

/**

 *  每次即将显示的时候必须移除系统自带的

 */

- (void)viewWillAppear:(BOOL)animated

{

    [superviewWillAppear:animated];

    

    // 移除之前的4个UITabBarButton

   for (UIView *childinself.tabBar.subviews) {

       if ([childisKindOfClass:[UIControlclass]]) {//UITabBarButton

            [childremoveFromSuperview];

        }

    }

}

 

/**

 *  初始化tabbar

 */

- (void)setupTabBar

{

   ZZTabBar *customTabBar = [[ZZTabBaralloc]init];

    // 自定义的tabbar 覆盖系统的就行

    customTabBar.frame =self.tabBar.bounds;

    customTabBar.delegate =self;

    [self.tabBaraddSubview:customTabBar];

   self.customTabBar = customTabBar;

}

 

/**

 *  初始化子控制器

 */

- (void)setupChildViewControllers

{

    // 1.首页

    ZZHomeController *home = [[ZZHomeControlleralloc]init];

    home.tabBarItem.badgeValue =@"4";

    [selfsetupChildViewController:hometitle:@"首页"imageName:@"tabbar_home"selectedImageName:@"tabbar_home_selected"];

    

    // 2.消息

    ZZMessageController *message = [[ZZMessageControlleralloc]init];

    message.tabBarItem.badgeValue =@"40";

    [selfsetupChildViewController:messagetitle:@"消息"imageName:@"tabbar_message_center"selectedImageName:@"tabbar_message_center_selected"];

    

    // 3.广场

    ZZDiscoverController *discover = [[ZZDiscoverControlleralloc]init];

    discover.tabBarItem.badgeValue =@"10";

    [selfsetupChildViewController:discovertitle:@"广场"imageName:@"tabbar_discover"selectedImageName:@"tabbar_discover_selected"];

    

    // 4.我

    ZZMeController *me = [[ZZMeControlleralloc]init];

    me.tabBarItem.badgeValue =@"5";

    [selfsetupChildViewController:metitle:@"我"imageName:@"tabbar_profile"selectedImageName:@"tabbar_profile_selected"];

}

 

/**

 *  添加一个子控制器

 *

 *  @param vc                子控制器

 *  @param title             标题

 *  @param imageName         图片

 *  @param selectedImageName 选中的图片

 */

- (void)setupChildViewController:(UIViewController *)vc title:(NSString *)title imageName:(NSString *)imageName selectedImageName:(NSString *)selectedImageName

{

    // 1.设置数据

    vc.title = title;

    vc.tabBarItem.image = [UIImageimageWithName:imageName];

    vc.tabBarItem.selectedImage = [UIImageoringinalImageWithName:selectedImageName];

    

    // 2.包装

    ZZNavigationController *nav = [[ZZNavigationControlleralloc]initWithRootViewController:vc];

    [selfaddChildViewController:nav];

    

    // 3.添加按钮

    [self.customTabBaraddTabBarButtonWithItem:vc.tabBarItem];

}

 

/**

 *  tabBar选中了按钮

 *

 *  @param from   以前的位置

 *  @param to     现在的位置

 */

- (void)tabBar:(ZZTabBar *)tabBar didSelectedButtonFrom:(NSInteger)from to:(NSInteger)to

{

    self.selectedIndex = to;

}

 

/**

 *  选中+号按钮

 */

- (void)tabBarDidClickedPlusButton:(ZZTabBar *)tabBar

{

    ZZComposeController *compose = [[ZZComposeControlleralloc]init];

    ZZNavigationController *nav = [[ZZNavigationControlleralloc]initWithRootViewController:compose];

    [selfpresentViewController:navanimated:YEScompletion:nil];

}

 

@end

 

 

iOS应用开发:自定义TabBar隐藏与显示技术实现 本文还有配套的精品资源,点击获取 简介:在iOS应用中,TabBarController是展示功能切换的关键组件,但在某些设计需求下,我们需要能够隐藏或显示TabBar。本篇将介绍如何在iOS中通过继承UITabBarController来创建自定义的TabBarController,并实现TabBar的隐藏与显示功能。我们将探讨通过代码控制TabBar隐藏/显示,响应用户... 阅读详情

相关推荐

精选IOS源码之自定义TabBar 非常漂亮 用法简单 已封装

改编之国外的经典例子,更新到xcode4.5 这基本上算是一个程序的框架了,例子中是放了五个页面 精选IOS源码之自定义TabBar 非常漂亮 用法简单 已封装

iOS开发之跳转指定的tabbar控制器(二级页面跳转到指定的tabbar页面)

先不使用动画直接pop回根视图(或者是使用dismiss) [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:NO]; 然后切换指定的界面,GCUITabBarController(自定义的tabba...

坤宇的博客 4424

iOS UITabBarController(自定义, tarBar中间有自定义按钮)

包括tabBarController的基本设置, 自定义tabBar(tabBar中间包含按钮)

推荐开源项目:ZFYTabbarController - 创新的自定义 TabBar 控制器

推荐开源项目:ZFYTabbarController - 创新的自定义 TabBar 控制器 项目简介 是一个由开发者 zhufengyi01 创建并维护的 iOS 开源项目。它提供了一种简单而灵活的方式来实现自定义的 TabBar,允许开发者在 iOS 应用中创建独特的用户体验。 技术分析 该项目基于 Swift 编程语言,利用了 iOS 自身的 UI 组件和手势识别机制。其核心亮点在于: 高...

gitblog_00047的博客 441

一款iOS可高度自定义的TabBarController

一款可高度自定义的TabBarController,几乎可以自定义所有想自定义的元素。 安装方法: pod 'YPTabBarController'或者,直接将YPTabBarController文件夹拖入工程。 功能介绍: 功能强大的自定义TabBarController,可以自定义:1. 替代系统的UITabBarController,以下属性均可自定义:a) TabBar:位置、大小、边框、圆角、分割线、内容支持滚动等;b) TabItem:图像、选中背景、title字体、title颜色等,均包含选中和未选中两种状态;c) Badge:支持数字badge和小圆点badge,可自定

智能驾驶感知模块评测实战:如何用回灌测试提升BEV模型准确率(附数据集处理技巧)

本文深入探讨了如何通过诊断型回灌测试系统性地提升智能驾驶BEV感知模型的准确率与鲁棒性。文章详细拆解了从场景切片、时空对齐到多维指标分析的完整评测流水线,并针对BEV模型特有的深度估计、特征融合等环节提供了优化思路,旨在帮助工程师将海量路采数据转化为精准的模型迭代燃料。

weixin_29045585的博客 395

iOS开发-实现自定义Tabbar及tabbar按钮动画效果

INSysTabbar继承UIView,实现tabbarButton效果//代理 @property(nonatomic , strong) UIImage * bgroundImage;//背景图 @property(nonatomic , strong) INSysTabbarShapeView * tabbarBGShapeView;//背景图 @property(nonatomic , strong) UIColor * lineColor;

一名开发者 3233

iperf3网络性能测试全攻略:从带宽到丢包率的实战技巧

本文提供了iperf3网络性能测试的完整实战指南,涵盖从基础部署到高级诊断的全流程。详细解析了TCP带宽测试的进阶技巧与UDP丢包率分析的深度方法,帮助网络工程师精准量化带宽、丢包率等关键指标,有效定位网络瓶颈并优化性能。

efc123456的博客 1018

在ios中自定义tabbar跳转隐藏问题

自定义tabbar高度的跳转隐藏问题 在ios开发(http://www.maiziedu.com/course/ios/)中,如何自定义tabbar高度的跳转隐藏问题,比如和系统自带的tabbar高度不一样导致的有一条线的问题,还有push时动画效果等等一些列问题不在这里累述了,当然,思路有很多,可以参考以上链接自己琢磨琢磨,好了,下面直接上个人认为完美解决办法。 需求 1、自定义tabb

qq_32506555的博客 2628

IEEE Transactions on Industrial Informatics(TII)投稿全流程解析:从准备到成功提交

本文详细解析了向IEEE Transactions on Industrial Informatics(TII)投稿的全流程,涵盖从投稿前的格式准备、内容结构优化到在线提交系统实操等关键环节。重点强调了遵守TII严格的格式规范、双盲评审要求以及如何构建有说服力的学术叙述,旨在帮助研究者提升稿件质量,顺利通过评审。

weixin_28396629的博客 1862

SMR实战指南:从GWAS数据到eQTL分析的完整流程

本文提供了基于汇总数据的孟德尔随机化(SMR)实战指南,详细解析了如何从GWAS汇总数据出发,整合eQTL数据,完成从数据准备、BESD格式转换到最终SMR与HEIDI分析的完整流程。文章重点阐述了核心操作步骤、常见避坑技巧与结果解读,旨在帮助遗传学研究者高效掌握这一分析基因表达与复杂性状潜在因果关系的强大工具。

weixin_29246195的博客 1065

ios 点击出现另外一套tabbar_从tabBarController的一个item上的控制器跳转到另一个item上的控制器...

先从习惯性的tabBarController开始,很多应用的外框都是用这个开始的,而从tabBarController的一个item上的控制器跳转到另一个上的,往往都是直接通过点击tabBar上的不同item来切换,借下别人的图...但如果要求如图从item3下的某个控制器跳转到item1上的根控制器要怎么跳呢?可以这么看流程:这个流程的跳转其实关乎应用开发所需要的业务流程,假如你从item3跳...

weixin_39530838的博客 461

基于Simulink的无迹卡尔曼滤波(UKF)SOC高精度估计仿真

本文介绍了基于Simulink的无迹卡尔曼滤波(UKF)在电池SOC高精度估计中的应用。通过无迹变换替代传统EKF的线性化过程,UKF显著提升了SOC估计精度,在强非线性工况下误差可控制在0.5%以内。文章详细阐述了UKF的核心原理,包括Sigma点生成、状态预测和观测更新等关键步骤,并基于Thevenin等效电路模型构建了完整的UKF SOC估算系统。通过Simulink建模和仿真验证,展示了UKF在大电流脉冲、变温工况等复杂场景下的优异性能,其动态响应时间小于30ms,长期累积误差低于0.7%。研究为储

amy_mhd的博客 124

IOS-自定义View 覆盖到Tabbar上, View不响应事件问题

自定义View 覆盖到Tabbar上, View不响应事件问题   本来想等把所有项目代码都敲个十遍八遍的,再上来写点稍微技术点的东西,但是昨天遇到一个问题, 今天晚上终于解决了.总算能写篇技术文章了. ======== 当我们使用TabBarController的时候, 系统自带的TabBar用着不顺手, 我们都会用各种方法自定义一个. 1,有的直接将TabBar隐藏,然后用一个Vie

阿莫西林 7547

GLM-4本地部署的实战教程

本文主要介绍了GLM-4-9B本地部署的实战教程,希望对学习和使用大模型的同学们有所帮助。 文章目录 1. 前言 2. 配置环境 2.1 安装虚拟环境 2.2 安装依赖库 2.3 下载模型文件 3. 运行glm-4-9b-chat

herosunly的博客 25万+

ArcGIS Pro SDK (二十五)工作流管理器

【代码】ArcGIS Pro SDK (二十五)工作流管理器。

Winemonk 494

如何拿到tabbarcontroller,如何拿到主导航控制器

在实际开发过程中,我们通常会遇到这样的问题,在模型类中,或是点击手势的方法中,我需要拿到主导航控制器,通过它来实现带导航跳转,又或者在tabbar的某个页面中。要拿到主tabbar然后拿到其它也面的徽章值。下面我们来通过一段代码来看一下如何实现-(void)tapAction{ UserInfoTableViewController *vc = [UserInfoTableViewContro

lee727n的博客 4837

Claude Code Agents 进阶:多代理协作与任务委托

Agent 是一个独立运行的 Claude 实例,它有自己的上下文和任务焦点。│ 主 Claude ││ (协调者) ││ │ │▼ ▼ ▼│ 代码审查 │ │ 测试生成 │ │ 文档编写 ││ │ ││▼汇总结果,完成任务并行处理:多个 Agent 同时工作,提高效率任务隔离:每个 Agent 有独立的上下文专业分工:不同类型的 Agent 擅长不同任务灵活控制:可以指定运行模式、超时等参数。

gaoxiang_120的专栏 336

ios tabtar 使用方法_iOS开发之TabBarController使用篇

1.代码创建TabBarControllerdemo演示1.AppDelegate 设置和代码AppDelegateself.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];//创建并初始化UITabBarControllerWBTabBarController *tabBarController = [[...

weixin_39612720的博客 741

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

关于两个tabbar之见的跳转

最近项目需要,我们需要使用两个tabbar,因为之前一直是使用单个tabbar,突然来了两个tabbar, 特别是关于两个tabbar之见的跳转,我在网上查了一下,发现资料非常少.后来经过一番苦思冥想,终于找到解决方法了. 我是这样解决的,就是在ATabBar中写了一个UIButton,然后通过Push跳转到第二个BTabBar页面上, - ( void )viewDid

iOS学堂 2368

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

iOS 在其他页面跳转到tabBarController的子控制器

只需在需要跳转的方法里指定 self.tabBarController.selectedIndex = index 即可。

Mocha 1241

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IOS——第二个View中使用TabbarController例子,tabbar中页面间通过非tabbar按钮跳转(xib布局)

该教程为自己记录使用,要求读者至少有一点点简单的Xcode开发经验即可 Demo功能介绍: 下图所示即可知道,TabbarController是控制器,控制着五个页面的 Demo创建过程: 首先是文件的一些说明: TabbarController是UITabBarController的实现 FirstViewController是UIViewController

Clare_0_0专栏 2795

点击tabBar跳转

开发过程中遇到UITabBarController有5个tabBar,其他的tabBar都是正常的添加UINavigationController,但是中间的tabBar需要点击跳转。如果用自定义方式能实现,但是如果坚持想用系统自带的UITabBarController呢?其实方法也有许多,不过个人觉得用通知的方式是最清晰的。 首先,让AppDelegate实现代理UITabBarControl

u011915116的博客 1401

IOS tabBarController 嵌套navigationController 实现多个界面的跳转

IOS开发中.很多时候都需要在不同的ViewController中来回的跳转,那么如何更加方便的跳转界面呢? 苹果提供了多种跳转方式 下面就说下最常用的tabBarController和navigationController(以下简称tabBar和Nav)如何组合使用达到嵌套跳转使用户更加方便的在不同界面中跳转首先说一下个人对这两个控件的理解,在我看来tabBar就像是一个字典,无序的跳转方式可以

骆驼的博客 6941

tabbarController之间的跳转(有一个tabbarcontroller上的button跳转到另一个tabbarcontroller)

在tabbarcontroller类文件中,gabbar是自定义的,然后在具体的controller里面实现跳转,跳转代码: 1、首先包含头文件: #import "AppTabBarController.h" 2、button target方法里面的实现代码: AppTabBarController * tabBarController = (AppTabBarController *)

qtds8810的博客 858

iOS跳转界面时隐藏tabBar的方法

//1.设置self.tabBarController.tabBar.hidden=YES;       self.tabBarController.tabBar.hidden=YES;   //2.如果在push跳转时需要隐藏tabBar,设置self.hidesBottomBarWhenPushed=YES;       self.hidesBottomBa

allanGold 2395
上一篇: iOS开发-自定义NavigationController(根据自定义UIBarButtonItem+ZZ)快速创建
下一篇: iOS开发-自定义一个发状态的工具栏toolbar(类似QQ和微博的发状态的工具栏)
ZZ_iOSDeveloper
博客等级 码龄11年 21粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值