我正在viewdidload UIKeyboardWillShowNotification 上创建通知,并在 viewwilldisappear 上删除它。
当键盘出现在屏幕上并按预期调用一次通知时,我锁定了屏幕。该通知称为 4 次,并创建了不需要的功能。
为什么要通知通知?我怎样才能阻止这种情况?
我正在以这种方式在viewdidload中添加Observer以进行通知
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
修改 如果我将应用程序发送到后台而不是锁定屏幕,结果相同。
答案 0 :(得分:2)
同样的事情发生在我身上
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
我在按钮点击时呈现了一个视图控制器。每次我提出Viewcontroller viewdidload都会调用它添加addObserver。所以该方法被多次调用。
答案 1 :(得分:0)
在你的情况下,Notification多次调用会多次显示addObserver调用,或者在完成使用后你不会删除观察者。
只需遵循以下内容:
viewwilldisappear
方法中移除观察者。所以尝试调试&看看它是否被调用。如果未调用此方法,请尝试在viewDidUnload
方法中将其删除。注意:
希望它会对你有所帮助。