用代码创建UITabBarController

ios-模仿简书自定义TabBar(纯代码).zip 1.模仿简书APP自定义TabBar 2.有相似的app可以直接拿过去使用,修改的地方很小 3.https://github.com/Naruto-yq/Jianshu_App 立即下载

文章目的

如何用纯代码的方式创建UITabBarController

方法


1. 首先开启XCode并建立一个Empty Application



2. 加入一个Objective-C Class并继承自UIViewController,取名为FirstViewController

3. 重复一次上面动作,并取名为SecondViewController


4. 之后可在工程中看到此图

5. 开启AppDelegate.h,并加入如下代码

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
    UITabBarController* tabBarViewController;
}

@property (strong, nonatomic) UIWindow *window;

@end

6. 开启AppDelegate.m,并加入如下代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    
    tabBarViewController = [[UITabBarController alloc]init];
    [self.window setRootViewController:tabBarViewController];
    
    FirstViewController* first = [[FirstViewController alloc]init];
    SecondViewController* second = [[SecondViewController alloc]init];
    tabBarViewController.viewControllers = [NSArray arrayWithObjects:first, second, nil];
    [first release];
    [second release];
}

    tabBarViewController = [[UITabBarController alloc]init];
    [self.window setRootViewController:tabBarViewController];
第一行代码为初始一个UITabBarController

第二行为将tabBarViewController设定为window的root view controller(根视图控制器)


tabBarViewController.viewControllers = [NSArray arrayWithObjects:first, second, nil];
接下来利用UITabBarController的viewControllers属性,设定First及Second两个控制器。

7.用代码修改TabBar与TabBarItem

UITabBar *tabBar = tabBarViewController.tabBar;
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];
UITabBarController提供一个tabBar属性,我们可以透过这个属性取得UITabBar

并在UITabBar的items属性取得所有的UITabBarItem


tabBarItem1.title = @"Home";
tabBarItem2.title = @"Maps";
透过UITabBarItem的title属性,可以设定tab bar item上显示的文字

[tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"home_selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"home.png"]];
[tabBarItem2 setFinishedSelectedImage:[UIImage imageNamed:@"maps_selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"maps.png"]];

- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage
这是UITabBarItem提供的方法,可以设定上面所显示的图片,selectedImage是只目前选择并显示的TabBatItem显示的图片

unselectedImage则是平常未选中时显示的图片


UIImage* tabBarBackground = [UIImage imageNamed:@"tabbar.png"];
[[UITabBar appearance] setBackgroundImage:tabBarBackground];
这段代码可以修改UITabBar显示的背景图

[[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"tabbar_selected.png"]];
这可以设定选中的UITabBarItem后面的图

UIColor *titleHighlightedColor = [UIColor colorWithRed:153/255.0 green:192/255.0 blue:48/255.0 alpha:1.0];
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                       titleHighlightedColor, UITextAttributeTextColor,
                                                       nil] forState:UIControlStateHighlighted];

- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state
这个方法可以设定显示文字的属性,在这段代码中,是设定为显示文字的颜色





范例下载


其他参考

poolo的tabbar超过五个,如何修改more

TabBar的纯代码实现 纯代码实现的TabBar,可以根据需要修改TabBar的大小,图片,背影色,任意添加TabBarItem的个数 立即下载

相关推荐

【随机过程】 3 - 随机过程的频域分析1 - 功率谱

随机过程的频域分析 文章目录随机过程的频域分析1. 什么是谱2. 确定信号的频谱2.1 周期信号的频谱2.2 非周期信号的频谱3. 随机信号的谱3.1 随机信号做傅里叶分析的困难3.2 功率谱密度的物理和数学表示形式3.2.1 功率谱密度的物理表示3.2.2 功率谱密度的数学表示3.3 功率谱密度的解读3.3.1 量纲分析3.3.2 谱3.3.3 密度3.3.4 wiener和khinchin3.4 功率谱密度的性质3.4.1 非线性3.4.2 偶函数3.5 wiener-khinchin关系的应用3.6

qq_41741344的博客 3131

UITabBarController问题解决记录

在每个ViewController里设置了tabBarItem和title,使得加载时无法及时获取,导致开屏后不显示,直到点击后才显示。在SceneDelegate或者UITabBarController里面设置tabBarItem和title。在空白对应位置点击隐藏的tabbaritem,点击后正常显示。在SceneDelegate里面加入代码。tabbar随背景颜色变化而变化。

2302_78755123的博客 1169

【扫地机器人】详细介绍扫地机器人软硬件测试和场景化测试

本文提出2025版扫地机器人全生命周期测试方案,涵盖实验室仿真、硬件台架、客户实景等全流程验证。测试以"清洁率≥95%、覆盖率≥98%、MTBF≥1000h"为核心指标,采用数字孪生与120套真实场景结合的双V模型。重点包括:传感器精度(LDS误差<±10mm)、清洁系统性能(10g粉尘吸入率≥99%)、动力续航(800次循环容量保持≥80%)等硬件测试;以及SLAM重定位(误差<5cm)、AI识别(mAP>92%)等软件验证。方案特别针对宠物家庭(毛发缠绕率≤3%)、

2501_92897788的博客 2280

iOS设置UITabBar的一些常用设置、背景颜色、

viewDidLoad中设置//设置tabBar的颜色 UIView *bgView = [[UIViewalloc] initWithFrame:self.tabBar.bounds]; bgView.backgroundColor = [UIColorblueColor]; [self.tabBarinsertSubview:bgView atIndex:0]; sel...

代码解释生活 888

国内合规开通ChatGPT Plus实操指南:银行卡绑卡与支付全解析

ChatGPT Plus 是 OpenAI 官方推出的高级订阅服务,基于 GPT-4o 多模态大模型提供语音交互、图像理解与长上下文处理能力。其核心使用前提在于完成合规的国际支付绑定,而非网络接入方式。技术原理上,OpenAI 采用 Stripe 支付网关进行风控校验,重点匹配银行跨境权限、卡片类型(仅支持 Visa/Mastercard/Amex 信用卡)、BIN 号段及地理位置一致性。该机制决定了95%的绑卡失败源于银行端配置缺失或卡片不兼容,而非网络问题。实际应用中,PayPal 作为中间支付层可显著

chuannaoxuan4674的博客 1926

Andriod应用开发基础项目——记账本

本项目采用Java语言编写,是一款基于Android Studio开发的简易项目,本项目可以提高Java语言编写软件的能力,同时加深对开发软件Android studio有了更深层次的掌握,很适合初学者。在项目过程中,遇到了一些挑战和问题,但通过不断的努力和学习,最终取得了成功。未来,可以还可以继续优化App的功能和性能,增加更多实用的功能,提升用户体验。

eryasd的博客 3467

UITabBarConroller使用中遇到的问题总结

关于tabBarController的一些使用总结

wzhios的博客 780

C#与工业设备的OPC DA/UA协议通信开发

摘要:本文介绍了C#与工业设备通信的两种OPC协议(OPC DA和OPC UA)的实现方法。OPC DA基于COM/DCOM技术,适用于Windows平台,提供实时数据采集功能;OPC UA则支持跨平台通信,具备更强的安全性和数据建模能力。文章详细展示了如何使用C#通过OPC DA和OPC UA协议读取、写入数据,并提供了代码示例,包括安装相关库、建立连接、订阅数据变化等关键步骤。这些方法为工业自动化中的设备监控与控制提供了实用解决方案。(149字)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1258

项目总结2 UITabBarController为根视图的基础界面细节处理-返回按钮等

上一篇文章讲了如何搭建以UITabBarController为根视图的界面,虽然是个简单的基础界面,但还是有几个细节问题需要处理。TabBar中button的selectedImage不知道大家有没有注意到,在setupChildViewControllers 这个函数中设置了selectedImage,但是没有效果。有些应用,比如微博,TabBar中button选中状态是橘黄色的,而不是系统默认的

Koptop的博客 4582

SAP公司间STO业务解析(包含主数据解析、后台配置解析、前台业务演示)

SAP公司间STO业务解析

ww114784的博客 1016

uniapp [安卓苹果App端] - 实现微信支付功能+拉起微信付款支付后返回本app页面,详解uniApp如何唤起本机微信app并跳转到支付页面全流程及示例源码(uniapp实现微信支付,可打包)

uni-app项目在APP端使用微信支付功能,uniapp前端实现微信支付,uniapp开发安卓App对接微信支付,uniapp苹果ios唤起微信支付,uniapp调用微信支付uniapp开发app-调用微信支付,uniapp开发安卓苹果app如何接入微信支付,前后端应该怎么做,UniApp中实现微信支付功能,支付报错,调起失败没响应,uniapp苹果微信支付唤起实现,app唤起微信支付,拉起微信支付,uniapp中唤醒微信进行支付并返回app,uniApp调起微信支付失败报错,全网最详细的uniapp微信

🏆 前端领域优质创作者 1万+

iOS学习—创建TabBar

iOS学习—创建TabBar

qq_43441647的博客 795

[特殊字符] 从零构建携程/飞猪机票价格爬虫:Python异步抓取与反爬对抗实战

在出行决策、竞品分析、价格预测模型训练等场景中,稳定获取携程(Ctrip)和飞猪(Fliggy)的实时机票价格波动数据是刚需。然而,这两大平台均部署了业界顶尖的反爬体系——包括但不限于:动态请求签名(SignToken设备指纹采集(UACanvasWebGL接口参数加密(X-Sign_abtestcookie混淆)频率限制与 IP 封禁(滑动窗口 + 行为检测)目录前言:为什么需要自建机票价格爬虫?一、技术选型与项目架构1.1 核心技术栈1.2 系统架构图(文字描述)1.3 法律与道德声明。

2201_76125261的博客 337

使用代码和storyboard分别创建UITabBarController

1、iOS中最常见的一种布局,在底部设置Tab导航,分别控制不同的视图。 2、使用代码的方式创建UITabBarController。 1)在AppDelegate的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方

sunshine 4890

VC中sqlite的使用

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

代码创建 UITabBarController

CG-L 的技术博客 362

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

iOS开发 代码创建UITabBarController

//创建tabbarcontroller来管理这些页面 UITabBarController *tabBarController = [[UITabBarController alloc] init]; tabBarController.viewControllers = @[chatNavigation, contactsNavigation, dynamicNavigation];

开发仔XG 979

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ios14.3开发之使用纯代码创建UITabbarController

ios14.3开发之使用纯代码创建UITabbarController 这里我们IOS版本14.3。Xcode 版本选择的是。12.3版本;来自apple最新的xcode版本,该版本支持最新的swift语法和最少的bug,支持新的api函数。 数风流人物,还看今朝。尽量苹果之前的ios系统很完美,都是苹果最近总是推陈出新,我们必须学习和使用新的ios系统。源码请在我的主页 资源库查找。 scene 场景 两个文件要删除 .m 和.h 文件全部干掉 main.stroyboard 删除,plis

A1521315qwss的博客 1852

iOS 使用代码和storyboard分别创建UITabBarController

转自 http://blog.youkuaiyun.com/ssrrxx111/article/details/48315843 1、iOS中最常见的一种布局,在底部设置Tab导航,分别控制不同的视图。 2、使用代码的方式创建UITabBarController。 1)在AppDelegate的 [html] view plain copy

司马懿的西山居 4295

[IOS]代码创建UINavigationController+UITabBarController

- (void)viewDidLoad { [super viewDidLoad]; //初始化所有的子控制器 //首页 IWHomeViewController *home=[[IWHomeViewController alloc]init]; home.view.backgroundColor=[UIColor whiteColor]; [self

大马猴 652

导航类视图之UITabBarController

关于UITabBarController:平行式导航 一. 基本知识 和UINavigationController类似,UITabBarController也可以用来控制多个页面导航,用户可以在多个视图控制器之间移动,并可以定制屏幕底部的选项卡栏。 借助屏幕底部的选项卡栏,UITabBarController不必像UINavigationController那样以栈的方式推入和

程序人生 3497

纯代码创建UITabBarController为window的根控制器的项目导航栏搭建

为什么80%的码农都做不了架构师?>>> ...

weixin_34128237的博客 135

UITabBarController

文章目的 如何用纯代码的方式创建UITabBarController 方法 1. 首先开启XCode并建立一个Empty Application 2. 加入一个Objective-C Class并继承自UIViewController,取名为FirstViewController 3. 重复一次上面动作,并取名为SecondViewController

kpyue的博客 335

ios-day13-02(UITabBarController使用代码的方式创建并添加子控制器)

源码下载地址:http://download.youkuaiyun.com/detail/liu537192/8507539 效果图: 核心代码: // // JLAppDelegate.m // 02-UITabBarController // // Created by XinYou on 15-3-17. // Copyright (c) 2015年

liu537192的专栏 1108
上一篇: 成就系统实践
下一篇: .NET 内部效能插件
云瑀
博客等级 码龄17年 502粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值