[英]How to remove an observer for NSNotification in a UIView?
我在initWithFrame:
下创建的自定义UIView中添加了一个观察者initWithFrame:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateZipFromLocation:)
name:@"zipFoundFromLocation"
object:nil];
问题是,这个视图是一个子视图。 再次加载视图时,它再次调用initWithFrame消息,从而添加两个观察者,依此类推。 当视图消失时,如何移除观察者? 因为它是一个UIView
,它说viewWillDisappear:(BOOL)animated
不是一个有效的方法。 有任何想法吗?
您已经说过initWithFrame:
被多次调用,所以我认为这意味着视图正在被销毁并重新创建。 您可以在dealloc
删除视图作为观察者,当任何人不再保留视图时,将调用该视图:
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.