2.1 - 设置导航栏

2.1.2 - 封装UIBarButtonItem的,通过其分类来创建一个类方法,以快速设置导航栏上的Item

+(instancetype)itemWithImage:(NSString *)image highimage:(NSString *)highimage target:(id)target action:(SEL)action
{UIButton *Btn = [[UIButton alloc]init];[Btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal];[Btn setBackgroundImage:[UIImage imageNamed:highimage] forState:UIControlStateHighlighted];[Btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];Btn.size = Btn.currentBackgroundImage.size;return [[self alloc]initWithCustomView:Btn];
}

2.2 - 自定义导航栏控制器,要改变当控制器被push时,返回键为自定义返回键

/*** 可以在这个方法中拦截所有push进来的控制器*/
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{if (self.childViewControllers.count > 0) {// 如果push进来的不是第一个控制器UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];[backBtn setTitle:@"返回" forState:UIControlStateNormal];[backBtn setImage:[UIImage imageNamed:@"navigationButtonReturn"] forState:UIControlStateNormal];[backBtn setImage:[UIImage imageNamed:@"navigationButtonReturnClick"] forState:UIControlStateHighlighted];backBtn.size = CGSizeMake(70, 30);// 让按钮内部的所有内容左对齐backBtn.contentEdgeInsets = UIEdgeInsetsMake(0, -50, 0, 0);[backBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];[backBtn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];[backBtn addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:backBtn];// 隐藏tabbarviewController.hidesBottomBarWhenPushed = YES;}// 这句super的push要放在后面,让view controller可以覆盖在上面leftbarbuttonitem
    [super pushViewController:viewController animated:animated];}

为了实现当有push进来一个新的控制器进来时,返回键不是系统自定义的蓝色控制器,就得在自定义导航控制器中重写push的方法,以此来达到拦截Push的过程。

2.2.2 - 设置导航栏的背景色,该项目采用的是图片

/*** 当第一次使用这个类的时候会调用一次*/
+ (void)initialize
{// 当导航栏用在XMGNavigationController中, appearance设置才会生效//    UINavigationBar *bar = [UINavigationBar appearanceWhenContainedIn:[self class], nil];// 视情况而定UINavigationBar *bar = [UINavigationBar appearance];[bar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];
}

在这里面设置的原因,是因为如果在viewDidload中写的话,就会调用四次,而这里面写就自会调用一次,优化性能。

转载于:https://www.cnblogs.com/zw-ios/p/5249517.html

娱乐大咖项目2- 总结相关推荐

  1. 【Git项目】想成为大咖,先从八卦大咖开始,这个GitHub项目你值得拥有

    文/编辑 | 言有三 AI领域人才辈出,为了让大家能够对大牛们的学习和生活了解地更加的深入,我们开通了一个专栏<AI大咖>,会用图文非常详细地介绍AI领域大咖的研究方向和生活趣事.同时,也 ...

  2. 天池四月读书会|数据分析金融量化,6场直播,6位大咖,6个项目实战

    简介:阿里云天池四月读书会来啦,本次读书会主题为数据分析和金融量化,6场直播,6个大咖,6个项目实践,总有你感兴趣的. 阿里云天池读书会四月场来啦,这次我们邀请到了<可解释机器学习>译者. ...

  3. Istio 大咖说第 7 期直播预告:基于 Envoy/Istio 的云原生 API 网关——开源项目 Hango 的设计与实现...

    讲师简介 韩佳浩,网易数帆资深研发工程师,主导 Hango 网关开源研发及设计,负责网易数帆轻舟 API 网关集团内部大规模落地及产品化建设.具有三年网关相关研发及大规模实践经验. 话题介绍 云原生架 ...

  4. PMcaff课堂:10年经验的产品大咖眼中的社交产品是这样的

    本周小二班第二期课程开始,重磅嘉宾来袭,国内社交行业鼻祖李翔昊老师,专门从硅谷赶回来的Roc老师,还有pmcaff男神陆蔚青老师的产品逻辑经典课程.本期大讲堂追踪报道,小咖给大家带来翔昊老师老师在课后 ...

  5. 【InfoQ大咖说直播回放】老司机聊程序员的职场道路选择

    9月22日,网易云信CTO阙杭宁做客InfoQ大咖说,直播畅聊 --程序员的职场道路选择.以下是直播录播视频及演讲整理文字稿. 本视频1小时03分,建议在Wifi下观看 前言 用三个问题作为开场吧.大 ...

  6. CSDN 独家对话阿里云贾扬清、华先胜等大咖,剧透阿里云原生技术密码

    新一轮科技革命和产业变革正重塑全球发展格局,以云计算为代表的新一代信息技术相互渗透,成为数字经济智能和创新发展新引擎. 过去 12 年,人们对云计算的讨论从原来的"为什么上云",到 ...

  7. 顶级技术大咖,揭秘实时音视频开发的超级风口

    2021年初因为Elon Musk"带货"而走红的音频社交App Clubhouse,又以肉眼可见的速度跌落神坛,下载量从2月的960 万/月跌至4月的92万/月.不过在5月,Cl ...

  8. 云原生是全云开发的敲门砖?蒋涛独家对话阿里云贾扬清、华先胜等大咖

    新一轮科技革命和产业变革正重塑全球发展格局,以云计算为代表的新一代信息技术相互渗透,成为数字经济智能和创新发展新引擎. 过去 12 年,人们对云计算的讨论从原来的"为什么上云",到 ...

  9. 数字化转型大咖群研讨实录20210506

    前言 群里的研讨实录已经变成信息流了,太干了,不整理一下实在嚼不动... 以下为研讨实录,请查收: 中间件和中台 提问: 如何理解中间件和中台? 讨论: 简单来讲,中间件和中台核心功能都是解耦,但是中 ...

最新文章

  1. 办公室自动化系统_信息化管理建设 公司办公室用自动盖章机贵吗?
  2. 子元素超出父元素宽高是否会报错?
  3. Entity Framework 学习结束语
  4. 博客园自定义背景(一)
  5. 2021牛客多校2 - Stack(单调栈+拓扑)
  6. 同步外部接口数据的一些记录和分享
  7. 队列,管道,manager模块
  8. JAVA线程池的创建
  9. 计算机应用基础搜题答案,大一计算机应用基础试题及答案
  10. Excel - 数组类型及数组公式
  11. 南京工程学院计算机博士,南京工程学院高层次人才引进工作实施办法(修订)...
  12. Generative Image Inpainting with Contextual Attention
  13. linux下C++编程学习
  14. redis存储关系性数据库数据
  15. ftp服务器上目录文件是否存在,在 Java 中如何检查 FTP 服务器上的文件或目录是否存在...
  16. spin_lock_bh使用
  17. c语言判断获取位置字符,C语言 · 判定字符位置
  18. Java根据word 模板,生成自定义内容的word 文件
  19. 解决MySQL CPU占用100%的经验总结
  20. 2022-3-4 Lab 2: Memory Management | Part 1: Physical Page Management

热门文章

  1. 光驱怎么挂载第二个光驱_重装系统下侦测不到光驱怎么解决?
  2. python第三方模块安装路径_Python第三方Window模块文件的几种安装方法
  3. Linux笔记-scp或ftp或sftp传文件后最后修改时间
  4. MySQL笔记-解决Can't connect to local MySQL server through socket '/xx/xx/mysql.sock' (111)及(2)
  5. Qt线程间通信-自定义事件
  6. php接收post参数乱码,学习猿地-php接收post参数乱码怎么办
  7. java 自动转 golang_基于dubbo-go的golang与java通信解决方案实践——伍:golang代码的生成...
  8. python第八周小测试_Python小测试.doc
  9. wxpython是干嘛的_你都用 Python 来做什么?
  10. notepad++怎么换行命令_notepad++如何自动换行