// // RegisterViewController.swift // YouerLiveVideo // // Created by 左丞 on 16/11/9. // Copyright © 2016年 左丞. All rights reserved. // import UIKit class RegisterViewController: UIViewController,UIAlertViewDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UITextFieldDelegate{ @IBOutlet weak var sendVerificationCode: UIButton! @IBOutlet var nikeNameTextFiled: UITextField! //昵称 @IBOutlet var passwordTextField: UITextField! //输入密码 @IBOutlet var confirmPasswordTextField: UITextField!//确认密码 @IBOutlet weak var phoneNumber: UITextField! @IBOutlet weak var inputVerificationCode: UITextField!//验证码 @IBOutlet weak var registerBtn: UIButton! @IBOutlet weak var nickNameLabel: UILabel! @IBOutlet weak var sendPhotoImage: UIImageView! var iconImage: UIImage? var name: String="" override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } @IBAction func touchAction(_ sender: AnyObject) { self.view.endEditing(true)//回收键盘 } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func textFieldShouldReturn(_ textField: UITextField) -> Bool { textField.resignFirstResponder() return true } @IBAction func sendVerificationCodeClickAction(_ sender: AnyObject) {//发验证码 self.view.endEditing(true) if nikeNameTextFiled.text!.characters.count<11{ if passwordTextField.text!.characters.count>=6 && passwordTextField.text!.characters.count<=8 && confirmPasswordTextField.text!.characters.count>=6 && confirmPasswordTextField.text!.characters.count<=8{ if passwordTextField.text!==confirmPasswordTextField.text!{ if (phoneNumber.text?.isMobilePhoneNumber())! { SVProgressHUD.show(withStatus: "获取验证码...") SVProgressHUD.setDefaultMaskType(.black) AppDelegate.instance().httpServer.getChangePhoneCaptcha(mobile: phoneNumber.text!, completionHandler: { (str, error) in SVProgressHUD.dismiss() if error==nil { if JSON.fromString(jsonString: str)!["status"].intValue == 1{ httpJsonResule(jsonString: str, error: error, successHandler: { (json) in self.view.makeToast("验证码发送成功") self.nikeNameTextFiled.isUserInteractionEnabled=false self.phoneNumber.isUserInteractionEnabled=false self.passwordTextField.isUserInteractionEnabled=false self.confirmPasswordTextField.isUserInteractionEnabled=false }, failHandler: { (error) in self.view.makeToast("验证码发送失败:\(error.localizedDescription)") }) }else{ self.view.makeToast("验证码发送失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") } }else{ self.view.makeToast("验证码发送失败:\(error!.description)") } }) }else{ self.view.makeToast("请输入正确手机号") } }else{ self.view.makeToast("两次输入密码不一致") } }else{ self.view.makeToast("密码必须为6-8位字符或者数字") } }else{ self.view.makeToast("昵称必须小于11位") } } @IBAction func registerBtnAction(_ sender: AnyObject) {//注册 if inputVerificationCode.text!.characters.count == 4{ SVProgressHUD.show(withStatus: "注册...") SVProgressHUD.setDefaultMaskType(.black) let parameters:Dictionary=["f_Account":phoneNumber.text! as AnyObject,"f_UserPassword":passwordTextField.text! as AnyObject,"f_RealName": (nikeNameTextFiled.text!=="" ? phoneNumber.text! : nikeNameTextFiled.text!) as AnyObject,"f_MobilePhone":phoneNumber.text! as AnyObject,"f_VerCode":inputVerificationCode.text! as AnyObject] AppDelegate.instance().httpServer.getCreateUser(parameters: parameters) { (str, error) in SVProgressHUD.dismiss() self.nikeNameTextFiled.isUserInteractionEnabled=true self.phoneNumber.isUserInteractionEnabled=true self.passwordTextField.isUserInteractionEnabled=true self.confirmPasswordTextField.isUserInteractionEnabled=true if error==nil { if JSON.fromString(jsonString: str)!["status"].intValue == 1{ httpJsonResule(jsonString: str, error: error, successHandler: { (json) in self.navigationController!.popToRootViewController(animated: true) AppDelegate.instance().window?.makeToast("注册成功") NotificationCenter.default.post(name: NSNotification.Name(rawValue: "refreshLoginUser"), object: self.phoneNumber.text!) //是否登录 }, failHandler: { (error) in self.view.makeToast("注册失败:\(error.localizedDescription)") }) }else{ self.view.makeToast("注册失败:\(JSON.fromString(jsonString: str)!["message"].stringValue)") } }else{ self.view.makeToast("注册失败:\(error!.description)") } } }else{ self.view.makeToast("验证码必须是四位数字") } } @IBAction func loginBtnClickAction(_ sender: AnyObject) { self.navigationController!.popViewController(animated: false) } @IBAction func nickNameSetTapAction(_ sender: AnyObject) { let alert = UIAlertController(title: "设置昵称", message: "", preferredStyle: .alert) alert.addAction(UIAlertAction(title: "取消", style: .destructive, handler: nil)) alert.addAction(UIAlertAction(title: "确定", style: .default, handler: { (action) in if alert.textFields![0].text == ""{ return } self.name = alert.textFields![0].text! self.nickNameLabel.text = alert.textFields![0].text })) alert.addTextField { (text) in text.placeholder = "请输入昵称" } self.present(alert, animated: true, completion: nil) } @IBAction func sendPhotoImageTapAction(_ sender: AnyObject) { if cameraOrPhotPermissions(0, view: self.view){ let vc = UIImagePickerController() vc.delegate = self vc.sourceType = .photoLibrary self.present(vc, animated: true, completion: nil) }else{ } } func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { picker.dismiss(animated: true, completion: { () -> Void in var oimage = info[UIImagePickerControllerOriginalImage] as? UIImage oimage = oimage!.imageScaledToScale() let filePath=FilesManager.imageFilePath(String(format:"%f.jpg",Date().timeIntervalSince1970)) try? UIImageJPEGRepresentation(oimage!,0.5)!.write(to: URL(fileURLWithPath: filePath), options: [.atomic]) self.sendPhotoImage.layer.masksToBounds = true self.sendPhotoImage.layer.cornerRadius = 25 self.sendPhotoImage.image = oimage self.iconImage = oimage }) } /* // MARK: - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { // Get the new view controller using segue.destinationViewController. // Pass the selected object to the new view controller. } */ }