iOS /目标C中的UINotification问题

Posted

技术标签:

【中文标题】iOS /目标C中的UINotification问题【英文标题】:Issue with UINotification in iOS / objective C 【发布时间】:2012-05-26 23:04:34 【问题描述】:

我正在使用不同的导航控制器制作应用程序。它们都被初始化了。

说,我有 3 个导航控制器 A、B 和 C。

来自 B 的视图控制器(比如 B1)发送一个应该从 A 中的视图控制器(比如 A1)听到的通知。之后,我们去查看控制器A1。

但是,如果我们从一开始就在视图控制器 B1 中(并且从未进入视图控制器 A1),那么 A1 就不会收到通知。但是,它第二次得到它。

或者,如果我进入 A1 一次,那么通知就会被正确接收。

任何人都可以帮助我吗?谢谢。

注意:监听器代码在 A1 的 init 中。它被命中(我使用断点检查)。

【问题讨论】:

您能否重新表述一下您的问题,不清楚B1是发布通知还是收听通知。 @0x8badf00d :B1 发布通知。 A1 监听这些通知。 【参考方案1】:

由于您说在视图显示一次后收到通知,我怀疑您正在以一种在显示视图之前不会运行的方法注册通知(viewDidLoadviewDidAppear:, ETC。)。

如果是这种情况,请尝试将您的通知注册移动到您在 ViewControllers 中使用的 init 方法。

【讨论】:

我是在init 方法中做的.. :( 嗯。那我就不知所措了。不过我会继续思考,如果我想出什么办法,我会告诉你的。如果您有更多上下文或代码要发布,可能会有所帮助。【参考方案2】:

NSNotification 可以通过所有应用程序观察到。因此,要执行您计划执行的操作,我会使用布尔标志或计数器。您可以将这些指标放在 appDelegate 类中或使用全局变量。

【讨论】:

以上是关于iOS /目标C中的UINotification问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS目标C中的多线程

IOS项目目标中的多个Objective C桥接头

如何在目标c中通过ios中的XMPPFramework连接XMPP服务器

如何处理ios目标c中的解析通知?

使用情节提要时iOS目标c中的合并冲突是啥

接收 int 类型的集合元素不是 iOS 中的目标 c 对象