ios开发基础之通讯录系统实战-20

ios开发基础之通讯录系统实战

基础知识 OC 基础
segue 的使用。delegate 代理的使用 自定义代理。面向对象思想 沙盒容器的数据持久化方案,
controller 之间的跳转 ,登录方法。UITableViewController的使用 导航条的使用等知识点的使用
我们使用最新的Xcode12。4 版本,配合最新的ios14.3系统和最新的mac os x系统,跑在 vmware 15虚拟机上面,需要电脑配置较高,否则比较卡顿;

实现的主要功能的截图。有些api虽然已经过期了,但是不影响使用。 ,先把过期的学好,再学新出的api函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//
//  LoginViewController.m
//  20-通讯录
//
//  Created by 鲁军 on 2021/2/13.
//

#import "LoginViewController.h"
#import "MBProgressHUD+NJ.h"
#import "SVProgressHUD.h"
#import "ContactViewController.h"

@interface LoginViewController () <UITextFieldDelegate>

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

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

@property (weak, nonatomic) IBOutlet UIButton *loginBtn;
- (IBAction)loginClick:(id)sender;



@property (weak, nonatomic) IBOutlet UISwitch *remPwd;
@property (weak, nonatomic) IBOutlet UISwitch *autoLoginSw;

@end

@implementation LoginViewController

- (IBAction)remClick:(UISwitch *)sender {
   

    if(!sender.isOn){
   
//        self.autoLoginSw.on=NO;
        [self.autoLoginSw setOn:NO animated:YES];
    }

}


- (IBAction)autoLoginClick:(UISwitch *)sender {
   
  
    if(sender.isOn)
    {
   
//        self.remPwd.on = YES;
        [self.remPwd setOn:YES animated:YES];
        
    }

}



//页面之间的传值
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
   
  ContactViewController *contactVc  = segue.destinationViewController;
  [contactVc setUsername:self.usernameView.text];
}


- (IBAction)loginClick:(id)sender {
   
    
   // [SVProgressHUD showWithStatus:@"正在登录" maskType:SVProgressHUDMaskTypeBlack];
    [MBProgressHUD showMessage:@"正在登录"];
    //模拟网络延时
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(3 * NSEC_PER_SEC)),dispatch_get_main_queue(), ^{
   
            
      //  [SVProgressHUD dismiss];
        [MBProgressHUD hideHUD];
        
        if([self.usernameView.text isEqualToString:@"1"] &&
           [self.pwdView.text isEqualToString:@"1"]){
   
           [self performSegueWithIdentifier:@"login2contact" sender:nil];
       
            NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
            [userDefaults setBool:self.remPwd.isOn forKey:@"remPwdKey"];
            [userDefaults setBool:self.autoLoginSw.isOn forKey:@"autoLoginKey"];
            [userDefaults setObject:self.usernameView.text forKey:@"usernameViewKey"];
            [userDefaults setObject:self.pwdView.text forKey:@"pwdViewKey"];
            
            
            [userDefaults synchronize];
            
        
        
        }
        else{
   
            
            //[SVProgressHUD showErrorWithStatus:@"用户名或者密码错误"];
            [MBProgressHUD showError:@"用户名或者密码错误"];
        }
            
    });
    
    
}
- (void)viewDidLoad {
   
    [super viewDidLoad];
    [self.usernameView addTarget:self action:@selector(changeValue) forControlEvents:(UIControlEventEditingChanged)];
    [self.pwdView addTarget:self action:@selector(changeValue) forControlEvents:(UIControlEventEditingChanged)];
    self.usernameView.delegate =self;
    
  
    
    
    
    //恢复状态
    NSUserDefaults *ud=[NSUserDefaults standardUserDefaults];
    self.remPwd.on = [ud boolForKey:@"remPwdKey"];
    self</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值