您好我想创建一个应用程序和我的应用程序记住最后一次用户操作,这意味着用户发现自己在上次他运行应用程序时在同一页。 怎么可能实现呢?iPhone应用程序与记住最后一次用户操作
回答
您可以使用NSUserDefaults为您的应用程序存储一些变量,以在应用程序关闭后检索它们。 对于为例:
// Set the name of the view
[[NSUserDefaults standardUserDefaults] setObject:@"viewName" forKey:@"lastViewName"];
为了获取用户的最后一个动作:
// Retrieve the last view name
NSString *lastViewName = [[NSUserDefaults standardUserDefaults] stringForKey:@"lastViewName"];
但您可以添加其他的不是一个字符串。
编辑:
定义一些常量就像一个在头文件:
#define HOME_VIEW 0
#define VIEW1 1
#define VIEW2 2
当一个观点是加载您存储电流恒定,以您的standardUserDefaults。例如,厂景:
- (void)viewDidLoad {
[super viewDidLoad];
// Set the name of the view
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:VIEW1] forKey:@"lastView"];
}
当你的应用程序并加载您找回您的常数,你加载相应的视图:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Retrieve the last view name
NSInteger constantView = [[NSUserDefaults standardUserDefaults] integerForKey:@"lastView"];
switch(constantView) {
case HOME_VIEW : //load your UIViewController
break;
case VIEW1 : // load your VIEW1
break;
//...
}
}
我还没有测试此代码,但它是类似的东西做。
谢谢..但是有一些问题!viewName是我的nib视图吗?我可以做什么,如果我想从任何视图加载,并且应该在applicationDidFinishLaunching上的代码?并且xcode编译器告诉我lastViewName是未使用的变量! 对不起iam新iphone sdk – Momi 2010-02-17 16:26:24
NSUserDefaults允许您存储对象,它是NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary的实例。 所以你可以存储你的nibname或另一个常量的字符串。当你的应用程序开始时,你检索字符串或常量,你必须使用它来加载你的UIViewController。 lastViewName是一个未使用的变量,因为您必须在代码中使用它来加载相应的ViewController。 – 2010-02-17 17:25:46
谢谢Yannick,但是你能编辑你的文章并写下整个代码吗?在.h和.m上? – Momi 2010-02-18 11:30:19
使用应用程序委托和覆盖的方法:
- (void)applicationWillTerminate:(UIApplication *)application
在这里,你可以保存它的观点是最后一个可见的,什么状态时,它是(如果需要其他的意见,以及),并坚持它。
然后,当您再次启动您的应用程序时,您将加载保存的状态并使用它来确定哪个视图应该可见。
有几种方法可以在iPhone SDK中保存数据,因此请阅读this guide以获取有关如何执行此操作的更多信息。
@Juan:小心解释这个问题的相关性? – Sampson 2010-02-18 00:23:38