ios 在view中创建通知 移除通知

本文深入探讨了在SwiftUI环境下如何使用通知机制进行视图状态更新。通过具体实例讲解了如何在视图关闭后更新控制器状态,包括创建通知、接收通知及在控制器中正确处理通知的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.场景就是在一个控制器中的view中有一个状态(未录入),点击未录入就会跳到签名界面,签名完成后,会dismiss关闭,这时候就要修改view的状态(已录入),view是自定义的,所以我想通知是最方便的,初始化的时候我创建控制器,但是view关掉,却不走移除控制器的方法。搜索一番资料得到下面两个方法。

//这个方法相当于vc中的viewDidLoad
- (void)didMoveToWindow {
    if (self.window) {
        //创建通知
        [[NSNotificationCenter defaultCenter] addObserver:self   selector:@selector(tongzhi:) name:@"signature" object:nil];
    }
}


//从当前window删除 相当于-viewDidUnload
- (void)willMoveToWindow:(UIWindow *)newWindow {
    if (newWindow == nil) {
//移除通知
        [[NSNotificationCenter defaultCenter] removeObserver:self name:@"tongzhi" object:nil];
    }
}

 

我把通知补充完整

//发送通知
 [[NSNotificationCenter defaultCenter] postNotificationName:@"signature" object:dic];





//接受通知内容
-(void)tongzhi:(NSNotification *)notification{
        NSDictionary *dic = notification.object;
       [_signBtn setTitle:dic[@"title"] forState:(UIControlStateNormal) ];
}

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值