NSNotificationCenter解决登录时所有需要变动的地方

最近写了个项目,在用户登录的时候,很多地方要发生相应地变化,包括按钮由登录变为注销,已经用户头像和基本信息的拿取。

因为分布在不同的VC,之前采取的办法是在viewWillAppear里面进行判断,后来发现这样做有些地方的UI不能及时更新过来,于是发现了NSNotificationCenter。


NSNotificationCenter消息通信机制

作用:NSNotificationCenter是专门供程序中不同类间的消息通信而设置的.

注册通知:即要在什么地方接受消息

               [[NSNotificationCenter defaultCenter]  addObserver:self selector:@selector(test:) name:@" test" object:nil]

      参数介绍:

          addObserver: 观察者,即在什么地方接收通知;

        selector: 收到通知后调用何种方法;

        name: 通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的;

          object: 接收那个通知者发出的通知,nil为默认接收所有通知者发出的通知。

发送通知:调用观察者处的方法。

           [[NSNotificationCenter defaultCenter] postNotificationName:@"test" object:nil];

          参数:

         postNotificationName:通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的。

                 object:传递的参数



当我登录成功的时候就调用了方法[[NSNotificationCenter defaultCenter]postNotificationName:@"login" object:nil];

当我注销登录的时候同样调用这个方法。


然后在需要更新UI的地方加上监听[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(refresh) name:@"login" object:nil];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值