IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【ios开发/Xcode】实现登录注册 -> 正文阅读

[移动开发]【ios开发/Xcode】实现登录注册

【ios开发/Xcode】实现登录注册

实现效果

首先进入初始界面,输入账号Linchuantao,密码Linchuantao,显示登录失败(如下左图),因此需要进行注册,点击左下角注册,输入账号Linchuantao,密码Linchuantao,点击注册
在这里插入图片描述
之后再次通过账号Linchuantao,密码Linchuantao进行登录,登录成功
在这里插入图片描述

源代码

登录界面代码 ViewController.swift

//1.登录界面代码
//  ViewController.swift
//
//  Created by JMU文科状元 on 2021/11/21.
//  Copyright ? 2021 JMU文科状元. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
    let userNameLabel = UILabel(frame:CGRect(x:50,y: 300, width: 200, height: 50))
    let passwordLabel = UILabel(frame:CGRect(x:50,y: 385, width: 100, height: 50))
    let enterUser = UITextField(frame: CGRect(x: 140, y: 310, width: 200, height: 40))
    let enterPassword = UITextField(frame: CGRect(x: 140, y: 390, width: 200, height: 40))
    var user = Dictionary<String,String>()
    let loginBtn = UIButton(type: .system)
let regBtn = UIButton(type: .system)

//定义一些button与text的默认值等数据
    override func viewDidLoad() {
        super.viewDidLoad()
        userNameLabel.text = "用户名"
        passwordLabel.text = "密码"
        userNameLabel.textColor=UIColor.darkGray        
        passwordLabel.textColor=UIColor.darkGray        
        self.view.addSubview(userNameLabel)
        self.view.addSubview(passwordLabel)
        enterUser.borderStyle = UITextField.BorderStyle.roundedRect
        enterPassword.borderStyle = UITextField.BorderStyle.roundedRect
        enterPassword.isSecureTextEntry = true
        enterUser.placeholder="请输入用户名" 
        enterPassword.placeholder="请输入密码"
        enterUser.clearButtonMode=UITextField.ViewMode.whileEditing
        enterPassword.clearButtonMode=UITextField.ViewMode.whileEditing
        
        self.view.addSubview(enterUser)
        self.view.addSubview(enterPassword)
        loginBtn.frame = CGRect(x: 85, y:450, width: 100, height: 50)
        regBtn.frame = CGRect(x: 200, y:450, width: 100, height: 50)
        loginBtn.setTitle("登录", for: .normal)
        loginBtn.addTarget(self, action: #selector(ViewController.mapForLogin(_:)), for: UIControl.Event.touchUpInside)
        regBtn.setTitle("注册", for: .normal)
        self.view.addSubview(loginBtn)
        
        regBtn.addTarget(self, action: #selector(ViewController.openViewController), for: .touchUpInside)
        self.view.addSubview(regBtn)
    }
    
    @objc func openViewController()
    {
        let loginView = ViewController1()
        loginView.viewController = self
        self.present(loginView, animated: true, completion: nil)
    }
    
    @objc func mapForLogin(_ button:UIButton)
    {
        if user[enterUser.text!]==enterPassword.text{
            let alertController = UIAlertController(title: "登录成功!",message: nil, preferredStyle: .alert)
            self.present(alertController, animated: true,completion: nil)
            DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1) {self.presentedViewController?.dismiss(animated: false, completion: nil)}
        }
        else{
            let alertController = UIAlertController(title: "登录失败!",message: nil, preferredStyle: .alert)
            self.present(alertController, animated: true,completion: nil)
            DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1) {self.presentedViewController?.dismiss(animated: false, completion: nil)}
        }
        
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    
}

注册界面代码

//2.注册界面代码
//  ViewController1.swift
//
//  Created by JMU文科状元 on 2021/11/21.
//  Copyright ? 2021 JMU文科状元. All rights reserved.
//

import UIKit

class ViewController1: UIViewController {
    let userNameLabel = UILabel(frame:CGRect(x:50,y: 100, width: 200, height: 50))
    let passwordLabel = UILabel(frame:CGRect(x:50,y: 180, width: 100, height: 50))
    let enterUser = UITextField(frame: CGRect(x: 140, y: 110, width: 200, height: 40))
    let enterPassword = UITextField(frame: CGRect(x: 140, y: 190, width: 200, height: 40))
    let regBtn = UIButton(type: .system)
    let returnBtn = UIButton(type: .system)//返回
    weak var viewController : ViewController?
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.white
        userNameLabel.text = "用户名"
        passwordLabel.text = "密码"
        userNameLabel.textColor=UIColor.darkGray
        passwordLabel.textColor=UIColor.darkGray
        self.view.addSubview(userNameLabel)
        self.view.addSubview(passwordLabel)
        
        enterUser.borderStyle = UITextField.BorderStyle.roundedRect
        enterPassword.borderStyle = UITextField.BorderStyle.roundedRect
        enterPassword.isSecureTextEntry = true
        
        enterUser.placeholder="请输入用户名" //提示内容
        enterPassword.placeholder="请输入密码"
        enterUser.clearButtonMode=UITextField.ViewMode.whileEditing
        enterPassword.clearButtonMode=UITextField.ViewMode.whileEditing
        self.view.addSubview(enterUser)
        self.view.addSubview(enterPassword)
        regBtn.frame = CGRect(x: 100, y:250, width: 100, height: 50)
        regBtn.setTitle("注册", for: .normal)
        regBtn.addTarget(self, action: #selector(ViewController1.dismissSelf), for: .touchUpInside)
        self.view.addSubview(regBtn)
        returnBtn.frame = CGRect(x: 200, y:250, width: 100, height: 50)
        returnBtn.setTitle("返回", for: .normal)
for: .touchUpInside)
        self.view.addSubview(returnBtn)
    } 
    @objc func dismissSelf()
    {
        viewController?.user.updateValue(enterPassword.text!, forKey: enterUser.text!)
        self.dismiss(animated: true, completion: nil)
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    
}
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:32:50  更:2022-03-16 22:35:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 18:29:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码