iOS开发 ☞ UINavigationController详解

本文详细解析了iOS导航栏(UINavigationBar)的配置方式,包括标题、按钮、颜色、背景等属性的使用方法。同时,介绍了如何在自定义左侧按钮时保留系统默认的返回按钮功能。

原文链接:http://blog.csdn.net/magicZYJ/article/details/51104360

相关链接:http://blog.csdn.net/magiczyj/article/details/50680242

一、属于
1、navigationItem
navigationItem是UIViewController的属性,用于控制器定制自己的导航栏外观
UINavigationItem的属性如下:
leftBarButtonItem 导航栏左边按钮
leftBarButtonItems 导航栏左边按钮数组
rightBarButtonItem 导航栏右边按钮
rightBarButtonItems 导航栏右边按钮数组
backBarButtonItem 返回按钮 ,从第一个控制器push到第二个控制器,如果前一个控制器设置了self.title 那么第二个控制器的backBarButtonItem会显示前一个控制器的title 否则默认显示Back
title 导航栏title文字,也可以通过给控制器的title赋值实现同样的效果
titleView 传入一个自定义的view作为title
prompt 给这个属性赋值字符串,并且显示在title上面,同时如果设置了这个属性,NavigationBar的高度会增加30(不论横屏还是竖屏)
leftItemsSupplementBackButton 布尔类型,默认为NO。当由前一个控制器Push到下一个控制器时,如果这个控制器设置了leftBarbuttonItem,返回按钮将会隐藏,如果想同时显示,需要设个这个属性为YES。
hidesBackButton

2、navigationBar
UINavigationBar是UINavigationController的属性
UINavigationBar的属性如下:
(1) tintColor :
释义如下:tintColor在iOS7以后不再影响背景颜色,改变背景颜色使用barTintColor属性。

 The behavior of tintColor for bars has changed on iOS 7.0. It no longer affects the bar's background
 and behaves as described for the tintColor property added to UIView.
 To tint the bar's background, please use -barTintColor.

用法示例:

self.navigationController.navigationBar.tintColor = [UIColor orangeColor];

这里写图片描述

(2) barTintColor:
用法示例:

self.navigationController.navigationBar.barTintColor = [UIColor greenColor];

这里写图片描述

(3) translucent 毛玻璃 || 半透明效果

self.navigationController.navigationBar.translucent = NO;

这里写图片描述

(4) titleTextAttributes 设置导航栏title的一些文字属性

self.title = @"4444";
    self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor orangeColor]};

这里写图片描述

(5) backgroundColor
设置其背景色并不会达到想要的效果。原因如下:
这里写图片描述
挡在UINavigationBar前面的是一个imageView,而且默认事带有毛玻璃效果的,此外,NavigationBar的高度为44。

UINavigationBar常用方法:
(1)setBackgroundImage:forBarMetrics:

//必须选择Default样式
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"6"] forBarMetrics:UIBarMetricsDefault];

这里写图片描述

二、原则

L:
如果当前的Controller(不是RootController)设置了leftBarButtonItem,则显示自带的leftbarButtonItem,隐藏上一个Controller的backbarButtonItem。

如果当前的Controller(不是RootController)没有设置leftBarButtonItem,则显示上一层Controller的backBarButtonItem,如果上一层的Controller没有设置backBarButtonItem,系统会根据上一层NavigationBar显示的title自动生成一个back按钮,如果上一层没有设置title,则back按钮显示Back。

如果当前的Controller是RootController,且没有设置leftBarButtonItem,则什么都不显示

M:
如果当前的Controller通过titileView设置了自定义的View,系统会显示自定义的View(其余的title属性设置无效

如果当前Controller没有指定titleView会根据Controller的navigationItem的title属性或者Controller的title属性进行显示。

R:
当前Controller 制定了rightBarbuttonItem就显示,不指定就不显示

三、设置导航栏返回按钮
UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@”custom” style:UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = back;

更新日期:2016年12月21日

在navigationController中实现右滑返回功能,如果我们不设置自定义的leftbarItem,使用系统的back,那么默认是有右滑返回功能的,如果我们自定义了leftbarItem,还想实现右滑返回功能,需要实现以下代码:

1、 self.navigationController.interactivePopGestureRecognizer.enabled = YES(默认为YES)  
2、self.navigationController.interactivePopGestureRecognizer.delegate = self; 
内容概要:本文档名为《赵家湾学校后大门一百三十六栋.txt》,实则是一份综合性科研仿真资源索引,集中展示了多个技术领域的Matlab/Simulink与Python代码实现项目。内容涵盖风光互补制氢合成氨系统容量-调度优化、微电网能量管理、无人机三维路径规划、图像分割、信号处理、电力系统建模、模型预测控制(MPC)、深度学习预测模型(如LSTM、Transformer)、联邦学习、强化学习应用等多个前沿方向。文档不仅列出具体研究题目和算法模型,还整合了智能优化算法(如PSO、GWO、DBO等)、路径规划、车间调度、通信优化、雷达跟踪、元胞自动机模拟等通用技术模块,并附有网盘链接提供完整代码与仿真模型下载,旨在为科研人员提供可复现的技术支持与开发参考。; 适合人群:具备一定编程基础,从事电气工程、自动化、计算机科学、人工智能、控制工程、能源系统等相关领域的研究生、科研人员及工程技术开发者。; 使用场景及目标:①辅助高水平学术论文复现与科研项目开发;②为硕士/博士论文、课程设计、学科竞赛提供算法实现与仿真建模支持;③提升在新能源并网、智能控制、路径规划、负荷预测、故障诊断等领域的工程实践与创新能力。; 阅读建议:此文档为资源导航型材料,建议结合个人研究方向筛选对应主题,通过提供的百度网盘链接获取完整代码包,并配合相关文献进行仿真实验与参数调试,以实现高效复用、二次开发与技术创新。
内容概要:本文深入解析了AI Agent(智能体)的技术原理与系统架构,阐述其如何通过“思考-行动-观察”的闭环循环,使大语言模型(LLM)从被动应答的对话系统进化为能主动完成复杂任务的智能实体。文章详细介绍了Agent四大核心模块:作为决策中枢的LLM(大脑)、实现外部交互的工具调用(双手)、支持状态延续的记忆模块(记忆),以及驱动自主执行的规划与协调机制(协调)。同时对比了Agent与传统聊天机器人在任务规划、工具使用、记忆能力和执行闭环等方面的本质差异,并探讨了从单智能体到多智能体系统的架构演进趋势,强调专业分工对处理复杂任务的重要性。最后,文章分析了Agent模式与预设工作流模式的应用权衡,指出前者适用于灵活探索类任务,后者更适合确定性高的固定流程。; 适合人群:对人工智能、大模型应用开发感兴趣的技术人员、产品经理及研究人员,尤其适合具备一定AI基础知识、希望深入了解Agent系统设计的专业人士; 使用场景及目标:①理解AI Agent的核心架构与关键技术组件;②掌握ReAct等主流执行范式;③区分Agent与传统聊天机器人的能力边界;④判断在实际业务中应采用Agent模式还是工作流模式; 阅读建议:本文理论性强且结构清晰,建议结合实际Agent案例(如AutoGPT、LangChain应用)进行对照学习,重点关注各模块间的协同机制与设计权衡,以深化对Agent系统级思维的理解。
内容概要:本文针对三相并网逆变器在瞬态过程中的全局最优控制问题,提出一种基于有限字符集预测控制(FCS-MPC)的渐进式调控策略,旨在实现从电流畸变抑制到功率无差拍响应的平滑过渡。通过构建电流与功率双模态预测控制框架,结合Simulink仿真与Matlab代码实现,系统分析了有限控制集对系统动态响应、谐波含量及功率调节性能的影响机理,深入探讨了预测模型构建、代价函数设计与控制参数优化的关键技术路径,验证了该策略在提升并网电能质量、增强动态响应能力和实现多目标协同控制方面的优越性与可行性; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink仿真环境,从事新能源发电并网、逆变器先进控制策略研究等相关领域的研究生、科研人员及工程技术人员; 使用场景及目标:①深入研究有限集模型预测控制在三相并网系统中的理论与应用;②掌握电流与功率双模态预测控制策略的设计方法与实现流程;③实现高动态性能、低谐波畸变与功率快速无差拍响应的综合控制目标; 阅读建议:建议结合文中提供的Matlab代码与Simulink仿真模型进行复现实验,重点剖析预测时域设定、代价函数权重配置及开关状态枚举策略对系统性能的影响,以全面理解FCS-MPC的核心原理及其在工程实践中的优化技巧。
内容概要:本文系统阐述了多层感知机(MLP)神经网络的底层原理、从零手写代码实现、工程化框架落地及超参数优化的完整体系。内容涵盖MLP的理论基础、前向传播与反向传播的数学推导、激活函数与损失函数的选择、NumPy原生实现与PyTorch/TensorFlow工业级封装,并深入解析了网络结构、训练优化、正则化等超参数的系统化调参策略。通过构建“数学原理→代码实现→调参优化→故障排查→工业实战”的闭环体系,提供可复用的标准化模型开发流程,结合分类与回归实战案例,全面指导模型评估、可视化与部署落地。; 适合人群:具备一定Python和机器学习基础,从事AI研发、数据科学、工程建模的1-5年经验技术人员,以及高校科研人员与企业AI落地团队。; 使用场景及目标:①掌握MLP神经网络的数学本质与代码实现机制;②系统学习超参数调优策略,解决过拟合、欠拟合、梯度异常等常见问题;③实现从学术理解到工业级模型部署的全流程落地;④提升在结构化数据建模任务中的模型性能与鲁棒性。; 阅读建议:建议结合文中提供的NumPy与PyTorch代码边学边练,重点理解反向传播推导与调参逻辑,对照实战案例进行调试与优化,建议按章节顺序学习,尤其重视第5章超参体系与第9章故障排查,以建立系统性调参思维与问题解决能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值