iOS基础——通知代理之NSNotificationCenter、Delegate

本文详细介绍NSNotification的使用方法,包括自定义通知、监听键盘通知及解决键盘遮挡问题;同时讲解如何自定义Delegate,实现模拟按钮点击并通过代理方法传递参数。

NSNotificationCenter就像Android的广播接收者,它可以通过发送通知,让监听通知的者收到通知,并执行相应事件,它是一种一对多的事件通知
Delegate就像Android的监听接口,它可以通过实现Delegate,并实现其方法,通过调用方法即可获取Delegate里面传过来的内容
1、自定义通知

第一步:定义一个方法

第二步:注册通知

参数

addObserver:添加该通知的类
selector:接收到通知后执行的方法
name:通知的名字,作为通知的标识
object:传递的对象
第三步:发送广播

我们通过创建一个按钮的点击事件来发送广播

参数

postNotificationName:发送广播的名字
object:传递的对象
userInfo:传递的参数
第四步:移除通知

注册了通知之后,必须记得移除通知,否则程序在退出时候回报错

2、监听键盘通知

系统提供了监听各种控件的通知,这里演示键盘的通知

第一步:注册通知

这里注册键盘将要弹出时和将要隐藏时的通知

第二步:实现对应方法

这里会接受一个NSNotification,可以通过NSNotification获取通知传递过来的信息

当键盘弹出时,这里会打印出键盘的各种信息,可以获取键盘的Frame等信息

第三步:移除通知

别忘了移除通知哦

3、解决键盘遮盖文本框问题

通过通知传递过来的参数可以计算出键盘应该偏移的y值,让界面向上移动即可,效果图如下

通过对通知的处理,完成对应的动画即可,如果对y轴偏移量计算不懂的,可以在纸上画一下就懂了

1、自定义Delegate

第一步:在carModel.h文件中,导入自己class,定义delegate的protocol文件

这里提供两个变量用于我们代理传递的参数,同时在代理中提供了两个方法,有必选方法和可选方法,还有一个模拟按钮点击的方法

第二步:在carModel.m文件中,先初始化数据

第三步:实现模拟点击按钮方法,执行代理的方法

第四步:在ViewController文件中,声明代理,实现代理的方法

第五步:初始化CarModel,并且设置代理方法

那么这个时候,只要CarModel按钮一点击,在这里就会回调这个代理方法

第六步:执行模拟按钮点击方法

第七步:查看Log打印

源码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值