在应用程序启动时在后台加载UIViews

时间:2012-01-29 14:07:19

标签: objective-c ios ipad uiviewcontroller

我有一个简单的iPad应用程序,有5个视图。在第一个视图中,要求用户进行一些选择并设置一些选项。根据此信息,在向其发送NSNotification消息之后,以编程方式更改其他4个视图。 (即添加,更新控件)。

我的问题是,当第一次加载应用程序时,用户会看到View1,但View2,View3,View4和View5从未打开过,所以我以编程方式对这些视图进行的任何更改都没有完成,当用户导航时他们(通过标签栏)第一次没有显示任何变化。

[编辑:我应该指出,对每个视图进行更改的代码都包含在ViewController本身中,并在视图观察传入的NSNotification时执行。当未加载视图时,可以理解地从未收到传入的NSNotification。]

只有在用户至少查看一次这些屏幕然后返回View1并进行更改之后,才能正确更新其他视图。

我认为我可以通过在应用程序启动时将视图2,3,4和5主动加载到内存中来解决此问题,以便他们可以立即开始接收通知。

在iOS 5中有一种简单的方法吗?

2 个答案:

答案 0 :(得分:0)

为什么视图会立即改变?

我会存储用户在第一个视图上回答问题时所需更改的指示符,然后对每个需要更改的视图的-viewDidLoad应用更改。

答案 1 :(得分:0)

我建议您使用用户在第一个视图上设置的选项初始化这些视图,而不是尝试将视图加载到内存中。我在这种情况下通常做的事情,当我有一个在很多地方使用的全局参数时,我创建一个实用程序类来保存数据,使其成为单例,然后访问 viewDidLoad 在初始化期间使用数据的视图中。