最近开发项目的时候遇到了一个小问题,记录一下。
问题描述:
首先,创建一个ViewController,因为这个ViewController只会被用到一次,所以我是这样处理的:UIViewController *vc = [[UIViewController alloc] init];
然后,再这个controller中添加一个通知的监听。
当我在其他地方发送通知的时候,这个controller里边是接收不到通知的。
注:此处使用代理也是不行的。
原因分析:
使用这样的方式(UIViewController *vc = [[UIViewController alloc] init];)创建对象,当创建完对象的时候,这个vc对象就被释放掉了。
解决办法:
将controller设置为属性,然后再创建对象。
@property (nonatomic, strong) UIViewController *vc;
self.vc = [[UIViewController alloc] init];
经测试,这种方法是可以接收到通知的。