ios - 标签栏( View Controller )中调用多次ios的通知中心方法方法?如何删除观察者?

标签 ios objective-c swift notifications

我正在从一个 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/

相关文章:

ios - 从 url 下载 pdf 文件

objective-c - 如何有效地从 iOS 中的文档目录中读取多个图像

ios - 像 Jamie Oliver 的食谱应用程序一样滚动页面

iphone - 如何沿滚动动态加载带有项目的 iOS iCarousel

objective-c - 是否允许 Objective-C 初始化器共享相同的名称?

iOS drawRect 没有正确读取颜色属性

objective-c - 如何使 Swift 类在 XPC 服务中可用?

ios - (Swift) 将数组存储和检索到 NSUserDefaults

ios - AVAudioEngine 的语音识别在录制后阻止声音

ios - 解析 - 设置设备 token