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:^{     }];

    

    

    

}

 

posted @ 2015-12-15 20:01  Chen同学最近很忙  阅读(445)  评论(0编辑  收藏  举报