1

我在我的设置应用程序中定义了 2 个字段。当用户打开应用程序时,设置中定义的 2 个字段正确显示。如果用户更改设置然后再次打开我的应用程序,则 2 个字段不会更新。只有当我重新启动调试器时,它们才会正确更新。我将 refreshFields 方法添加到viewWillAppear

但是,当我单击手机上的后退按钮然后再次打开应用程序时,没有捕捉到viewWillAppear 。如果我没有单击手机上的后退按钮,而是单击应用程序中创建的后退按钮,那么一切正常。

总之,我应该在哪里调用 refreshFields 方法,以便在单击手机上的后退按钮后第二次打开我的应用程序时捕获它们?

谢谢。

4

2 回答 2

2

我当前的解决方案是在 viewDidLoad 中添加以下内容:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshFields) name: UIApplicationDidBecomeActiveNotification object:nil];

但是,由于 UIApplicationDidBecomeActiveNotification 在屏幕出现后被捕获,因此屏幕会显示旧值几毫秒。

于 2011-05-04T12:35:55.547 回答
0

尝试查看 UIApplicationDelegate:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UIApplicationDelegate

- (void)applicationDidBecomeActive:(UIApplication *)application

您应该使用此方法重新启动在应用程序处于非活动状态时暂停(或尚未启动)的任何任务。例如,您可以使用它来重新启动计时器或提高 OpenGL ES 帧速率。如果您的应用程序以前在后台,您还可以使用它来刷新应用程序的用户界面。

于 2011-04-19T14:50:51.143 回答