美文网首页
118课:实现登录和注册功能

118课:实现登录和注册功能

作者: sing_crystal | 来源:发表于2016-06-04 16:06 被阅读213次

课程笔记文集地址:Udemy课程:The Complete iOS 9 Developer Course - Build 18 Apps

Section 8 主要的内容是克隆 Instagram:107 - 128课。

本节课主要讲解如何使用 LeanCloud 实现注册、登录的功能。请按照 101 课创建工程,然后继续下面的操作。

一、布局 Storyboard

拖入控件,设置 AutoLayout 约束,创建 Outlet 和 Action 连接。如下图:

二、创建变量

在类里创建两个变量:

    var signupActive = true
    var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()

加上之前的 Outlet 连接,一共有如下变量:

    @IBOutlet var username: UITextField!
    
    @IBOutlet var password: UITextField!
    
    @IBOutlet var signupButton: UIButton!
    
    @IBOutlet var registeredText: UILabel!
    
    @IBOutlet var loginButton: UIButton!

    var signupActive = true

    var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()

三、点击注册登录按钮

1、没有输入信息的情况下点击注册按钮要有提示:

    @IBAction func signUp(sender: AnyObject) {        
        if username.text == "" || password.text == "" {
            // 出现提示信息            
            displayAlert("Error in form", message: "Please enter a username and password")            
        } else {
            //这里开始实现注册的功能
        }
    }

这里这个提示框使用了一个单独的方法,传入不同的参数,一次就能搞定这个页面出现的所有的提示:

    func displayAlert(title: String, message: String) {
        let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction((UIAlertAction(title: "OK", style: .Default, handler: { (action) -> Void in
            self.dismissViewControllerAnimated(true, completion: nil)
        })))
        self.presentViewController(alert, animated: true, completion: nil)
    }

2、点击注册后要出现一个旋转提示,表示正好和服务器进行交互

    @IBAction func signUp(sender: AnyObject) {
        if username.text == "" || password.text == "" {
            displayAlert("Error in form", message: "Please enter a username and password")
        } else {
            activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0, 0, 50, 50))
            activityIndicator.center = self.view.center
            activityIndicator.hidesWhenStopped = true
            activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
            view.addSubview(activityIndicator)
            activityIndicator.startAnimating()
            //禁止其他的交互行为,禁止用户的点击等操作
            UIApplication.sharedApplication().beginIgnoringInteractionEvents()
        }
    }

3、注册的实现方法

var errorMessage = "Please try again later"
let user = AVUser()
user.username = username.text
user.password = password.text
user.signUpInBackgroundWithBlock({ (success, error) -> Void in
    // 让旋转图标不再旋转
    self.activityIndicator.stopAnimating()
    // 允许用户操作
    UIApplication.sharedApplication().endIgnoringInteractionEvents()
        if error == nil {
            // 注册成功
         else {
            // 失败的原因可能有多种,常见的是用户名已经存在。
            if let errorString = error!.userInfo["error"] as? String {
                errorMessage = errorString
            }
            self.displayAlert("Failed SignUp", message: errorMessage)
      }
})

4.登录的实现方法

AVUser.logInWithUsernameInBackground(username.text!, password: password.text!, block: { (user, error) -> Void in
self.activityIndicator.stopAnimating()
UIApplication.sharedApplication().endIgnoringInteractionEvents()
    if user != nil {
        // 登录成功!
    } else {
        if let errorString = error!.userInfo["error"] as? String {
        errorMessage = errorString
        }
    self.displayAlert("Failed Login", message: errorMessage)
    }
})

相关文章

  • Python面向对象方式实现注册、登录、查询功能

    实现注册、登录、查询功能 (1)注册 (2)登录 (3)退出登录首先附上另一个解法: Python面向过程实现的用...

  • 登录,注册功能实现

    1、登录功能 登陆成功界面 关键代码 2、注册功能 注册界面 编号自动生成代码 关键代码

  • 今日

    开始着手实现登录,注册,找回密码的功能

  • 第三篇:XMPP实现IM--登录注册及断线重连、重新连接

    目录一、前言二、工程配置三、注册功能的实现四、登录功能的实现五、登录注册阶段需要考虑的问题 问题1、断线重连 问题...

  • 计算机毕业设计SpringBoot+Vue.js自驾游攻略系统

    功能 用户注册、登录 角色有两种,分别是使用系统的用户和管理系统的管理员。分别实现两种角色的注册和登录功能。普通用...

  • 考勤系统

    考勤系统功能实现——登录、注册 1、界面 1.1登录界面 1.2注册界面 2、主要代码 2.1登录主要代码 2.2...

  • 第二十一篇:单点登录系统的具体实现(2)

    前言:前面我们已经实现了数据的校验和注册功能,下面是实现登录功能;用户的登录涉及到三部分1.前台工程2.单点登录服...

  • 简单需求分析

    用户模块 1注册页 注册时验证用户名是否被注册 完成用户信息注册 2登录页 显示登录页 实现用户的登录功能 3 用...

  • Session

    在文章Cookie与登录注册中,我们已经实现了简单的注册和登录功能,并且登录后服务器会给客户端发送一个Cookie...

  • 实现表单的登录注册功能

    快速实现登录以及注册功能:php artisan make:auth,快速生成登录、注册路由、控制器、视图等相关文...

网友评论

      本文标题:118课:实现登录和注册功能

      本文链接:https://www.haomeiwen.com/subject/zkzkdttx.html