【问题标题】:NSNotification called before view controller is initialised completely在视图控制器完全初始化之前调用的 NSNotification
【发布时间】:2012-02-06 17:21:06
【问题描述】:

您好,我在 tabview 控制器中有一个 viewcontroller。我决定使用 NSNotification 来标记 tabview 控制器中的视图何时需要更新其数据。以前每个人都有逻辑来决定数据模型的状态并相应地更新。

我的更新代码调用了一些东西,而这些东西又调用了委托方法。这些都在不使用通知时工作。

我第一次尝试通知似乎在视图控制器初始化之前调用了选择器(至少在 viewDidload 之前)。除此之外,当通知选择器中的更新运行并且视图控制器没有更新时,委托方法从未被调用。似乎视图控制器处于某种未知状态。

我运行了一个测试并将相同的更新代码放在 viewDidLoad 中,并且仅在调用 viewDidLoad 后才调用通知代码。这行得通。

我的问题是,是否有另一种方法可以防止在 viewDidLoad 之前调用通知选择器方法,或者对象被正确初始化。

我正在使用情节提要,所以我没有对视图的创建等进行编程。

我希望这很清楚 - 发布一大堆代码不会更容易。

【问题讨论】:

  • 你什么时候注册你的视图控制器来接收通知?
  • 为什么在初始化视图控制器时不总是调用更新代码?然后注册NSNotification,专门针对视图控制器已经初始化并需要更新自身的情况。

标签: ios nsnotification


【解决方案1】:

谢谢大家,都对!我在应用程序委托中设置了通知。我应该把它放在 viewDidLoad 的末尾。然后仅在有后续更新时调用它,并且我不需要标志来阻止第一个通知在对象启动并运行之前进行更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多