请帮忙!我是编程的新手,我遇到了以下麻烦。我正在尝试编写我的第一个iphone应用程序,我希望它能够执行以下操作。
当应用程序启动用户输入名称时,按下按钮并转到新视图。他们的名字保存到文件中并在整个应用程序中使用。我做了很多。
我希望应用程序在启动时检查是否有保存的文件,直接转到第二个视图而不是第一个视图。我已经搜索了几天寻找答案,我仍然不确定如何做到这一点。
冒着看似愚蠢的风险,我是否使用IF语句,如何编写它。请帮忙。
提前感谢你。
答案 0 :(得分:1)
您必须使用NSUserDefaults来存储用户名和传递单词。如果要存储更多数据,必须使用plist(文档目录)或核心数据或SQLite。
// Store the data
[[NSUserDefaults standardUserDefaults] setObject:@"yourPasswordString" forKey:@"YourKey"];
// Retrieve the data
NSString *passWord = [[NSUserDefaults standardUserDefaults] objectForKey:@"YourKey"];
检索完数据后,您必须检查条件,
if(passWord == nil)
{
//load first view
}
else
{
// load second view
}
谢谢!
答案 1 :(得分:0)
如果您正在使用NSUserDefaults保存它,那么您所要做的就是尝试将值读入字符串,然后检查它是否为nil,如果是,则文件不在那里你会加载你的第一个视图,如果是,则加载第二个视图。
NSString *tempStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"yourKey"];
if(tempStr == nil)
{
//load your first view
}
else
{
// load your second view
}
你需要重新读出你的密钥才能测试它是否为零,你这样做的方式,你永远不会是零,并且总是使用其他选择,你需要在其他地方设置你的对象,可能在if语句。
-(IBAction)LogInButton:(id)sender
{
NSString *tempStr = [[NSUserDefaults standardUserDefaults] objectForKey:@"UserName"];
if (tempStr == nil || [tempStr isEqualToString:""])
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:Name.text forKey:@"UserName"];
[prefs synchronize];
ClubSearchViewController *CSearch = [[ClubSearchViewController alloc]initWithNibName:@"ClubSearchViewController" bundle:Nil];
[self presentModalViewController:CSearch animated:YES];
}
else
{
SearchMenu *SMenu = [[SearchMenu alloc]initWithNibName:@"SearchMenu" bundle:nil];
[self presentModalViewController:SMenu animated:YES];
}
}
-(IBAction)LogOutButton:(id)sender
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"" forKey:@"UserName"];
[prefs synchronize];
}