【发布时间】:2012-01-29 14:07:19
【问题描述】:
我有一个带有 5 个视图的简单 iPad 应用程序。在第一个视图中,要求用户进行一些选择并设置一些选项。根据这些信息,在向其他 4 个视图发送 NSNotification 消息后,它们会以编程方式更改。 (即添加、更新控件)。
我的问题是,当应用程序首次加载时,用户会看到 View1,但 View2、View3、View4 和 View5 从未打开过,所以我以编程方式对这些视图进行的任何更改都没有完成,当用户导航时对于他们(通过标签栏)第一次,没有显示任何更改。
[编辑:我应该指出,对每个视图进行更改的代码都包含在 ViewController 本身中,并且在视图观察到传入的 NSNotification 时执行。当视图未加载时,可以理解的是它从未收到传入的 NSNotification。]
只有在用户至少查看这些屏幕中的任何一个,然后返回 View1 并进行更改后,其他视图才会正确更新。
我认为我可以通过在应用程序启动时将视图 2、3、4 和 5 主动加载到内存中来解决此问题,以便它们准备好立即开始接收通知。
在 iOS 5 中是否有一种简单的方法可以做到这一点?
【问题讨论】:
-
当其他视图被实例化和加载并且就在它们将出现在屏幕上之前,他们不能只从根视图(或视图 1)获取选择和选项更改,然后执行他们需要做什么定制?
-
好点。我可能应该多解释一下这个应用程序——它是一个 MIDI 设备的控制器,所以当用户在第一个屏幕上设置参数时,应用程序会开始一些 MIDI 对话,这会导致在“真实”中更新其他视图时间'。出于性能原因,MIDI 对话也发生在不同的线程上。如果其他视图可以在用户选择第一个视图上的选项后立即开始更新/整理,那将很方便。
标签: objective-c ios ipad uiviewcontroller