2012-02-05 90 views
1

嗨我有一个tabview控制器中的viewcontroller。我决定使用NSNotification来标记tabview控制器中的视图何时需要更新其数据。以前每个都有逻辑来决定数据模型的状态并相应地更新。在视图控制器之前调用的NSNotification被完全初始化

我的更新代码调用了一些调用委托方法的东西。当不使用通知时,这些都是有效的。

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

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

我的问题是,是否有另一种方法来阻止在viewDidLoad之前调用通知选择器方法,否则对象会被正确初始化。

我使用的分镜,所以我不会编程的意见等

我希望这是明确的创作 - 发布了一大堆的代码不会过任何容易。

+2

你什么时候注册视图控制器来接收通知? – jrturton 2012-02-05 10:02:09

+0

初始化视图控制器时,为什么不总是调用更新代码?然后注册'NSNotification'专门用于视图控制器已经初始化并需要更新的情况。 – 2012-02-05 13:35:11

回答

0

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

相关问题