Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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登录屏幕问题_Ios_Json_Parsing_Login_Uiviewcontroller - Fatal编程技术网

ios登录屏幕问题

ios登录屏幕问题,ios,json,parsing,login,uiviewcontroller,Ios,Json,Parsing,Login,Uiviewcontroller,我一直在开发一个iOS应用程序,其中包括一个登录屏幕。此屏幕有两个UITextField,我在其中输入用户名和密码 现在,问题出现在下面:我已经设置了一个“else if”来触发UIAlertView,如果字段为空 确实会弹出UIAlertView,但。。。在下一个视图控制器中 另一个问题是。。。它检查用户名和密码是否正确,并跳转到下一个视图控制器 这很奇怪,因为我设置了一个“if”条件来检查UITextFields中的文本必须匹配才能触发下一个视图控制器 我有预感,与登录操作相关的另一个方法可

我一直在开发一个iOS应用程序,其中包括一个登录屏幕。此屏幕有两个
UITextField
,我在其中输入用户名和密码

现在,问题出现在下面:我已经设置了一个“else if”来触发
UIAlertView
,如果字段为空

确实会弹出
UIAlertView
,但。。。在下一个视图控制器中

另一个问题是。。。它检查用户名和密码是否正确,并跳转到下一个视图控制器

这很奇怪,因为我设置了一个“if”条件来检查
UITextFields
中的文本必须匹配才能触发下一个视图控制器

我有预感,与登录操作相关的另一个方法可能会干扰该过程

我将发布有关登录的代码片段:

- (void)btn_submit:(id)sender{
    NSString *user = self.usuari.text;
    NSString *pass = self.contrasenya.text;

    NSString * urlBase = @"http://www.v2msoft.com/clientes/lasalle/curs-ios/login.php?username=lluis&password=seguro";

    [JSONHTTPClient getJSONFromURLWithString:urlBase completion:^(id json,JSONModelError *err){

JsonUser * user = [[JsonUser alloc]initWithDictionary:json error:nil];

        if(user.succeed){
            self.user_id = user.user_id;

            [self performSegueWithIdentifier:@"Login" sender:self];
        }
        else{
            NSLog(@"error");
        }
    }];
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{


    if (([self.usuari.text isEqualToString:@"lluis"]) && ([self.contrasenya.text isEqualToString:@"seguro"])){

        Supermarket * supermercat = segue.destinationViewController;
        supermercat.user_id = self.user_id;

    }

    else if (_usuari.text.length == 0 || _contrasenya.text.length == 0)
    {

        [[[UIAlertView alloc] initWithTitle:@"Alerta!"
                                    message:@"Camps buits!"
                                   delegate: nil
                          cancelButtonTitle:@"Cancelar"
                          otherButtonTitles:nil
          ] show];
    }

}
还有,“JsonUser”类的几行:

我认为通过URL将参数发送到服务器可能是一个错误,这可能会覆盖登录


如果您能在这件事上提供任何帮助或建议,我将不胜感激。

您在
prepareforsgue
内进行检查已经太迟了。如果您有机会停止segue的呈现,那么该方法将被称为shouldPresentSegue或类似的东西。在调用
performsgue

之前,执行您的检查(如果
为else),检查您是将segue从提交按钮连接到下一个视图控制器,还是将segue从登录视图连接到下一个视图控制器。确保只从登录屏幕转到下一个ViewController,而不是从提交按钮。

Yikes,小心!您正在通过internet发送未加密的用户名和密码凭据。请检查您是否没有直接从IB中的提交按钮链接segue。此外,是的,请使用HTTPSAh!谢谢你的警告。但由于这不是一个专业的应用程序(它是大学作业),那么它就没什么关系了。它并不意味着要安装在设备上。它只是用来模拟的。数据只用于访问远程服务器中的json文件,因此不会造成伤害。不过,感谢您的警告。@Paulw11:“btn_submit”定义为“Logger.h”上的iAction:但它是“我的视图控制器”链接列表中的“已接收操作”。segue从一个VC链接到另一个VC。是的-您可以实现
shouldPerformSegueWithIdentifier
方法我检查过了,segue只链接两个视图控制器:按钮不链接。
#import "JSONModel.h"

@interface JsonUser : JSONModel

@property BOOL succeed;
@property int user_id;