Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将NSUserdefaults信息从一个视图控制器传递到另一个视图控制器_Ios_Objective C_Login - Fatal编程技术网

Ios 将NSUserdefaults信息从一个视图控制器传递到另一个视图控制器

Ios 将NSUserdefaults信息从一个视图控制器传递到另一个视图控制器,ios,objective-c,login,Ios,Objective C,Login,我目前正在开发一个简单的应用程序,一个真正测试我的技能和对xcode和应用程序开发的理解的应用程序。我还是一个初学者,所以它主要是一种学习工具和技能培养。无论哪种方式,我都试图在进入下一个view controller屏幕之前实现一个简单的登录/注册,登录和注册屏幕是分开的,信息存储在应用程序中,而不是Farse或icloud 在ViewController1.m中,我调用ViewController2.h: #import "ViewController2.h" 对于ViewControll

我目前正在开发一个简单的应用程序,一个真正测试我的技能和对xcode和应用程序开发的理解的应用程序。我还是一个初学者,所以它主要是一种学习工具和技能培养。无论哪种方式,我都试图在进入下一个view controller屏幕之前实现一个简单的登录/注册,登录和注册屏幕是分开的,信息存储在应用程序中,而不是Farse或icloud

在ViewController1.m中,我调用ViewController2.h:

#import "ViewController2.h"
对于ViewController1.h,这也在ViewController2.m中完成

在ViewController1.m中,我将NSUserDefaults用作:

NSUserDefaults *defaults = [NSUserDefaults standarUserDefaults];

[defaults setObject:_usernameField2.text forKey:@"username"];
[defaults setObject:_passwordField2.text forKey:@"password"];
[defaults setBool:YES forKey@"registered"];

[defaults synchronize];
运行程序时,我可以注册用户,通过segue命令,我可以转到下一个视图控制器:

[self performSegueWithIdentifier:@"loginScreen" sender:self];
理想情况下,当我访问ViewController2屏幕时,我希望使用上一个viewcontroller(ViewController1)中的信息。但是,当我尝试使用存储的信息时,程序不会确认来自上一个viewController的信息

-(void) checkCredintials
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    if (![_usernameField1.text isEqualToString:[defaults objectForKey:@"username"]] && ![_passwordField1.text isEqualToString:[defaults objectForKey:@"password"]])

我尝试过其他方法,比如使用NSString,但是我认为我要么缺少一些简单的东西,要么我试图实现代码的方式可能不正确。我的一部分人认为这可能是因为我正在运行更高版本的xcode(4.6.3)并编写代码,但这只是小步舞曲的想法。我做过研究,也尝试过一些方法,只是不确定我遗漏了什么,或者我可能需要添加或更改什么。任何帮助都将不胜感激。提前感谢您

设置断点或在checkCredintails方法中记录文本字段的值以及默认值中为键存储的内容。另外,只需检查您是否实际保存了_usernameField2和_passwordField2的值


从NSUserDefaults保存和检索数据的方式看起来不错,因此用户在ViewController1中输入(保存)他们的用户名和密码,然后在ViewController2中再次输入以进行验证?您可能不应该使用NSUserDefaults检查/存储密码,但我想您只是举个例子。

您的问题没有说明问题所在。“不承认信息”是毫无意义的,如果你发布的声明根本不能告诉我们真正的问题是什么。你期望或想要在这条线上发生什么,你在观察什么?如果usernameField1是第二个视图控制器和第一个视图控制器的成员,那么它从何处/如何获取数据?如果该代码不是view controller 2,那么为什么要显示它。您不想在
NSUserDefaults
中存储凭据。我想我并没有真正表达问题,但我试图实现的是当用户在注册屏幕上键入信息时(用户名和密码)在视图控制器1中,它保存在NSUserdefaults中。我想做的是回忆一下我在NSUserdefaults中保存的信息,将用户名和密码从ViewController 1默认设置为ViewController 2中的默认设置。总的来说,我尝试将我在第一个ViewController中保存的任何信息(用户名和密码)用于第二个view controller。我也不确定我的if语句是否有错误