我正在从一个 View Controller 中发布通知,它位于选项卡栏应用程序的导航堆栈中。我正在删除 dealloc 中的观察者。
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"ArtworkAddedReloadAllArtworks" object:nil]; in dealloc correctly.
我正在注销
[[self tabBarController] dismissViewControllerAnimated:YES completion:nil];
但问题是当我重新登录时,在通知中心添加了两次相同的通知
ArtworkAddedReloadAllArtworks, 0x12ff698, 0x7a490e00, 1400
ArtworkAddedReloadAllArtworks, 0x12ff698, 0x7a431800, 1400
在通知中心,因为创建了 2 个 View Controller 实例,并且通知添加了两次,两个不同的对象,如何注销通知?我无法从 viewDidDisappear 中删除,因为我从其他 Controller 发布通知。dealloc 在登录后调用。
如何制作 nil view controller(登录前先创建)和他的观察者?
提前致谢。
最佳答案
NSNotificationCenter.defaultCenter().removeObserver(self, name : UIKeyboardWillShowNotification, object: nil)
在这种情况下,任何监听“UIKeyboardWillShowNotification”的观察者都将从您所在的 View Controller 中移除。
关于ios - 标签栏( View Controller )中调用多次ios的通知中心方法方法?如何删除观察者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33565956/