ios 顺传一层的话,直接用属性 改变里面的值

顺传穿两到三层的话 使用KVO

// 设置item

- (void)setItem:(UITabBarItem *)item

{

_item = item;

// KVO 监听属性改变

[item addObserver:self forKeyPath:@"badgeValue" options:0 context:nil];

[item addObserver:self forKeyPath:@"title" options:0 context:nil];

[item addObserver:self forKeyPath:@"image" options:0 context:nil];

[item addObserver:self forKeyPath:@"selectedImage" options:0 context:nil];

[self observeValueForKeyPath:nil ofObject:nil change:nil context:nil];

}

- (void)dealloc

{

[self.item removeObserver:self forKeyPath:@"badgeValue"];

[self.item removeObserver:self forKeyPath:@"title"];

[self.item removeObserver:self forKeyPath:@"image"];

[self.item removeObserver:self forKeyPath:@"selectedImage"];

}

/**

*  监听到某个对象的属性改变了,就会调用

*

*  @param keyPath 属性名

*  @param object  哪个对象的属性被改变

*  @param change  属性发生的改变

*/

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context

{

// 设置文字

[self setTitle:self.item.title forState:UIControlStateSelected];

[self setTitle:self.item.title forState:UIControlStateNormal];

// 设置图片

[self setImage:self.item.image forState:UIControlStateNormal];

[self setImage:self.item.selectedImage forState:UIControlStateSelected];

// 设置提醒数字

self.badgeButton.badgeValue = self.item.badgeValue;

// 设置提醒数字的位置

CGFloat badgeY = 5;

CGFloat badgeX = self.frame.size.width - self.badgeButton.frame.size.width - 10;

CGRect badgeF = self.badgeButton.frame;

badgeF.origin.x = badgeX;

badgeF.origin.y = badgeY;

self.badgeButton.frame = badgeF;

}

iOS 顺传的更多相关文章

  1. IOS上传文件开发

    IOS上传文件开发     在移动应用开发  文件形式上传是不可缺少的,近期把IOS这块文件上传文件代码简单的整理一下.假设大家有须要安卓这边的代码,本人也能够分享给大家! QQ群:74432915 ...

  2. iOS上传文件,有关http上传协议-RFC1867

    以上是抓包HTML input file标签上传的内容 只要模拟上面http 的header跟body就可以成功. 整体说明: post 上传文件时,以在http body里面带参数,参数的格式,根据 ...

  3. IOS 上传下载

    下载地址:https://github.com/samsoffes/ssziparchive 注意:需要引入libz.dylib框架 // Unzipping NSString *zipPath = ...

  4. ios 上传视频或图片

    关于iOS如何实现视频和图片的上传, 我们先理清下思路 思路: #1. 如何获取图片? #2. 如何获取视频? #3. 如何把图片存到缓存路径中? #4. 如何把视频存到缓存路径中? #5. 如何上传 ...

  5. iOS 上传的图片在HTML上显示时,图片方向信息(EXIF Orientation)异常

    将iPhone 6s拍摄的照片上传到服务器之后, 在Web网页上看到图片被逆时针旋转了90度, 这让我很惆怅呐! 出现这个问题其实是因为上传的图片为.jpg格式,.jpg文件含有EXIF信息, 其中E ...

  6. IOS上传到App Store出现证书未安装问题

    今天在提交自己的APP到苹果商店去审核的时候,编译成功后.upload过程中,提示 XXX Select the certificates you wish to include in this pr ...

  7. iOS上传文件代码,自定义组装body

    以下代码为上传文件所用代码,简单方便,搞了好久,终于知道这么简单的方式来上传. 其它类库也就是把这几句代码封装的乱七八糟得,让你老久搞不懂原理.不就是在body上面加点字符串,body下面加点字符串, ...

  8. iOS 上传新版本到AppStore时报错ITMS-90034

    今天打包新版本上传到AppStore时报错 ERROR ITMS-90034:"Missing or invalid signature.The bundle'com.xxx.xxx' at ...

  9. iOS上传App Store报错:this action cannot be completed -22421 解决方案

    最近swift项目升了xcode8,提交版本时,遇到这个: this action cannot be completed -22421 瞬间懵逼,连具体报错原因都没有,只有一个代码 22421,找了 ...

随机推荐

  1. MVC设计模式

    随着Web应用的商业逻辑包含逐渐复杂的公式分析计算.决策支持等,使客户机越 来越不堪重负,因此将系统的商业分离出来.单独形成一部分,这样三层结构产生了. 其中‘层’是逻辑上的划分. 三层体系结构是将整 ...

  2. Linux 关闭防火墙命令

    用linux自己来访问web是可以的 比如 192.168.2.20就可以访问本机的相关页面 用192.168.2.20/phpmyadmin就可以访问数据库相关内容 可是,当别的局域网的电脑想访问时 ...

  3. hot code replace

    http://wiki.eclipse.org/FAQ_What_is_hot_code_replace%3F https://social.msdn.microsoft.com/Forums/vst ...

  4. v2.0

    #include <stdio.h>#include <string.h>#include <ctype.h>typedef struct node{ char l ...

  5. 树莓派如何便捷的使用pi4j

    问题的由来 pi4j用起来很方便,但是感觉pi4j库的命名太杂乱,啰嗦了,很容易弄混,而且好像没听说官方有自己的编译器.如果没有智能点的编辑器的话,写起来真要命,但是树莓派运行Eclipse不太现实, ...

  6. CENTOS安装vnc

    先直接进入命令模式,如果是服务器则可以使用putty连接进入命令行模式. 现在知道的centos下的vnc是:tigervnc,由于是服务端所以我们只安装tigervnc-server即可: yum ...

  7. Java多线程 - 线程状态

    转自: http://www.cnblogs.com/lwbqqyumidi/p/3804883.html 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的 ...

  8. 使用 Redis 实现分布式系统轻量级协调技术

    http://www.ibm.com/developerworks/cn/opensource/os-cn-redis-coordinate/index.html 在分布式系统中,各个进程(本文使用进 ...

  9. JQ实现accordion(可折叠)效果

    先看效果--这个就是手风琴的效果:          原理:首先默认section1下面的dd可见,其他的全部隐藏:当点击某个obj时候,  快速隐藏全部的dd,然后只有obj.NEXT().show ...

  10. [代码片段]YEAH!连通域标记和计数

    //标记的连通域存储在buff[]里 //返回值为连通域个数 int LinkBlob(unsigned char **imagedata,unsigned char buff[], int heig ...