我可以根据文件是否已保存更改应用视图?

时间:2011-03-15 13:33:04

标签: iphone

请帮忙!我是编程的新手,我遇到了以下麻烦。我正在尝试编写我的第一个iphone应用程序,我希望它能够执行以下操作。

当应用程序启动用户输入名称时,按下按钮并转到新视图。他们的名字保存到文件中并在整个应用程序中使用。我做了很多。

我希望应用程序在启动时检查是否有保存的文件,直接转到第二个视图而不是第一个视图。我已经搜索了几天寻找答案,我仍然不确定如何做到这一点。

冒着看似愚蠢的风险,我是否使用IF语句,如何编写它。请帮忙。

提前感谢你。

2 个答案:

答案 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];
}