[英]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.