2010-06-19 29 views
3

我有一个tableview,它显示了一个webview点击表中的某一行,然后从sqlite中选取数据。如果用户在webview中查看描述时按Home键关闭应用程序,有时会重新打开该应用程序,我应该让用户看到相同的屏幕。如何再次展示相同的视图?什么是有效的方式?如何在应用程序重新打开时显示相同的视图

回答

5

嗯,我认为最简单的方法是将应用程序的状态存储在NSUserDefaults中。 UIApplication上有一个委托方法:

- (void)applicationWillTerminate:(UIApplication *)application 

当用户退出应用程序时,会调用此委托方法。这是您可以将应用程序的状态保存到NSUserDefaults的时间。但要注意,你不能在那里做时间密集的东西。如果你这样做,你会被操作系统杀死。

在你的情况下,为什么不只是存储用户在挑选NSUserDefaults的行,然后在 -(void)applicationDidFinishLaunching:(UIApplication *)application 检查是否有保存行和approbiately恢复屏幕。

+0

所以下次我打开应用程序,我将验证我的参数userdefaults,并显示此视图。我的另一个惯例会发生什么?我做数据库加载,用户数据和其他事情的验证。 。 。我应该写代码来显示最后显示的屏幕后,做所有数据库的东西,加载通常显示的意见? – thndrkiss 2010-06-19 16:13:53

+0

那么一般来说,会有一些控制器对象调解从tableView到webView和数据库的数据。在这个控制器对象中,您将处理恢复。 – GorillaPatch 2010-06-19 16:43:49

0

最简单的方法是将一个字符串写入文档目录中的一个文件,该文件以一种易于解析的格式保存您的状态信息。例如“screen_name:database_id”。或者构建一个JSON字符串并用JSON解析它。

每次切换屏幕时,都要重新写入文件。当您下次打开时,请阅读该文件并进行解析,然后在您的应用中显示相应的屏幕。

+0

如何显示相应的屏幕?怎么做 ?应该保存当前视图对象并显示相同的屏幕还是以其他方式显示? – thndrkiss 2010-06-19 15:24:34

+0

为什么要解析?您可以直接将对象存储在NSUserDefaults中。尽管如此,对于更大的数据量,文档目录中的文件是一个很好的解决方案。使用NSUserDefaults的 – GorillaPatch 2010-06-19 15:25:09

+4

比读/写/解析文件要容易得多。 – kubi 2010-06-19 15:25:46

相关问题