zoukankan      html  css  js  c++  java
  • iOS 登录功能的实现

    #import "AppDelegate.h"  中

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

        // Override point for customization after application launch.

       //判断是否登陆,由登陆状态判断启动页面 //获取UserDefault

        NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; NSString *name = [userDefault objectForKey:@"name"];

        //获取storyboard

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];

        //如果用户未登陆则把根视图控制器改变成登陆视图控制器

        if (name == nil) {

            NSLog(@"%@",name);

            id view = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"];

            self.window.rootViewController = view;

        }

        return YES;

    }

    #import "ViewController.h"

    #import "LapLoginViewController.h"//导入

    #import "NetWorkManger.h"//导入(这是一个我自己写的第三方, 解析 url 的,可以在我博客里找一下,此处不再累赘);

    @interface ViewController ()

    @property (weak, nonatomic) IBOutlet UITextField *nameTextFiled;

    @property (weak, nonatomic) IBOutlet UITextField *passwordTextFiled;

    @property (nonatomic,strong)NSDictionary *dataSource;

    @end

    @implementation ViewController

    - (NSDictionary *)dataSource {

        if (!_dataSource) {

            self.dataSource = [NSDictionary dictionary];

            

        }

        return _dataSource;

    }

    //storyboard 中拖出来的按钮,登陆

    - (IBAction)loginAction:(id)sender {

        //获取用户输入的信息

        NSString *username = self.nameTextFiled.text;

        NSString *password = self.passwordTextFiled.text;

        

        

          NSString *str = [NSString stringWithFormat:@"http://hy.gdhstz.com/Hander/Admin_Handler.ashx?Action=Login&UserPhone=%@&FPwd=%@",username,password];

        

            [[NetWorkManger mainNetworkManager] getDateWithURL:str success:^(NetWorkManger *net, id object) {

                NSLog(@"%@",object);

        

            } fail:^(NetWorkManger *net, NSError *error) {

         

            }];

        

        //对用户信息的验证

        if (username.length > 10){

            

            [[NetWorkManger mainNetworkManager] getDateWithURL:str success:^(NetWorkManger *net, id object) {

              

           

                if (object == nil) {

                  UIAlertView *alert;

            alert = [[UIAlertView alloc] initWithTitle:@"抱歉" message:@"账号密码有误,请重新输入" delegate: self  cancelButtonTitle:@"确定" otherButtonTitles: nil, nil];

                    [alert show];

                }else {

                //获取userDefault单例

                NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

                //登陆成功后把用户名和密码存储到UserDefault

                [userDefaults setObject:username forKey:@"name"];

                [userDefaults setObject:password forKey:@"password"];          [userDefaults synchronize];

                //用模态跳转到主界面

                LapLoginViewController *lapVC = [[LapLoginViewController alloc] init];

                [self.navigationController pushViewController:lapVC animated:YES];

                }

            } fail:^(NetWorkManger *net, NSError *error) {

                UIAlertView *alert;

                alert = [[UIAlertView alloc] initWithTitle:@"抱歉"

                                                   message:@"账号密码有误,请重新输入"

                                                  delegate: self

                                         cancelButtonTitle:@"确定"

                                         otherButtonTitles: nil, nil];

                

                [alert show];

            }];

        }else{

            UIAlertView *alert;

            alert = [[UIAlertView alloc] initWithTitle:@"抱歉"

                                               message:@"账号密码有误,请重新输入"

                                              delegate: self

                                     cancelButtonTitle:@"确定"

                                     otherButtonTitles: nil, nil];

            

            [alert show];

        }

    }

     //登陆之后跳转到该界面, 该界面的button方法用来注销 登陆的;

    #import "LapLoginViewController.h"

    @interface LapLoginViewController ()

    @end

    @implementation LapLoginViewController

    - (IBAction)hahahahahahahah:(id)sender {

        

                 //获取UserDefaults单例

        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

        //移除UserDefaults中存储的用户信息

        [userDefaults removeObjectForKey:@"name"];     [userDefaults removeObjectForKey:@"password"];      [userDefaults synchronize];

        //获取storyboard

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];

        //获取注销后要跳转的页面

        id view = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"];

        //模态展示出登陆页面

        [self presentViewController:view animated:YES completion:^{     }];

        

        

        

    }

  • 相关阅读:
    cds.data:=dsp.data赋值有时会出现AV错误剖析
    iOS -- 十进制、十六进制字符串,byte,data等之间的转换
    iOS -- 原生NSStream实现socket
    CA认证原理以及实现(下)
    CA认证原理以及实现(上)
    android -- 存储byte
    iOS -- 字符串(NSString *)转uint8_t的两种方法
    Android -- AsyncTask 使用和缺陷
    Swift oc 混编
    Android -- native关键字
  • 原文地址:https://www.cnblogs.com/chamton/p/5049316.html
Copyright © 2011-2022 走看看