// ViewController.swift
// RegistrationDemoPractise
import UIKit
class ViewController: UIViewController,UITextFieldDelegate {
@IBOutlet var lblTitle: UILabel!
@IBOutlet var txtName: UITextField!
@IBOutlet var txtPhon: UITextField!
@IBOutlet var txtEmail: UITextField!
@IBOutlet var txtBirth: UITextField!
@IBOutlet var txtPincode: UITextField!
@IBOutlet var txtPassword: UITextField!
var datePiker = UIDatePicker()
var myarray = NSMutableArray()
var myDict = NSDictionary()
override func viewDidLoad() {
super.viewDidLoad()
if (txtBirth != nil){
datePickerChange()
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool // return NO to not change text
{
if textField == txtName
{
if (txtName.text?.characters.count)! > 20
{
print("InValid Name")
return false
}
else
{
print("Valid Name")
}
}
if textField == txtPassword
{
if (txtPassword.text?.characters.count)! > 8
{
print("Valid password")
return false
}
else
{
print("InValid Password")
}
}
if textField == txtEmail
{
if EmailValidation(teststr: txtEmail.text!)
{
print("Valid Email")
return true
}else
{
print("invalid email")
}
}
if textField == txtPhon || textField == txtPincode
{
let invertedset = NSCharacterSet(charactersIn:"0123456789").inverted
let components = string.components(separatedBy: invertedset)
let filtered = components.joined(separator: "")
if textField == txtPhon
{
if (txtPhon.text?.characters.count)! > 10
{
print("valid phone no")
return false
}
else{
print("invalid Phone")
}
}
if textField == txtPincode
{
if (txtPincode.text?.characters.count)! > 6
{
print("valid Pincod")
return false
}
else
{
print("Invalid pincode")
}
}
return string == filtered
}
return true
}
func EmailValidation(teststr : String) -> Bool
{
let emailRegx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"
let emailTest = NSPredicate(format: "SELF MATCHES %@", emailRegx)
return emailTest.evaluate(with: teststr)
}
@IBAction func btnSubmit(_ sender: UIButton) {
var myDict = NSMutableDictionary()
myDict.setValue(txtName.text, forKey: "Name")
myDict.setValue(txtPhon.text, forKey: "Phone")
myDict.setValue(txtEmail.text, forKey: "Email")
myDict.setValue(txtBirth.text, forKey: "Birth")
myDict.setValue(txtPincode.text, forKey: "Pincode")
myDict.setValue(txtPassword.text, forKey: "Password")
// print(myDict)
myarray.add(myDict)
print(myarray)
}
@IBAction func btnReset(_ sender: UIButton) {
txtName.text = ""
txtPhon.text = ""
txtEmail.text = ""
txtBirth.text = ""
txtPincode.text = ""
txtPassword.text = ""
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == txtName
{
txtPhon.becomeFirstResponder()
}
if textField == txtPhon
{
txtEmail.becomeFirstResponder()
}
if textField == txtEmail
{
txtBirth.becomeFirstResponder()
}
if textField == txtBirth
{
txtPincode.becomeFirstResponder()
}
if textField == txtPincode
{
txtPassword.becomeFirstResponder()
}
if textField == txtPassword
{
txtPassword.resignFirstResponder()
}
return true
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
func datePickerChange()
{
datePiker.datePickerMode = .date
var componts = DateComponents()
componts.year = -100
let minDate = Calendar.current.date(byAdding: componts, to: Date())
datePiker.minimumDate = minDate
datePiker.maximumDate = Date()
let toolbar = UIToolbar()
toolbar.sizeToFit()
let DoneButton = UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(DoneButtonPressed))
let CansleButton = UIBarButtonItem(title: "Cansle", style: .plain, target: self, action: #selector(CasnleButtonressed))
let label = UILabel()
label.text = "Select BirthDate"
label.frame = CGRect(x: 0, y: 0, width: 150, height: 30)
label.textAlignment = .center
label.backgroundColor = UIColor.clear
let TitleButton = UIBarButtonItem(customView: label)
let SpaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
toolbar.setItems([CansleButton,SpaceButton,TitleButton,SpaceButton,DoneButton], animated: true)
txtBirth.inputAccessoryView = toolbar
txtBirth.inputView = datePiker
}
func DoneButtonPressed()
{
let dateFormatterr = DateFormatter()
dateFormatterr.dateStyle = .long
dateFormatterr.timeStyle = .none
txtBirth.text = dateFormatterr.string(from: datePiker.date)
self.view.endEditing(true)
}
func CasnleButtonressed()
{
txtBirth.resignFirstResponder()
}
}
Comments
Post a Comment