I am new to Swift but I have managed to setup some code for an OTP authentication page but I need help recreating the code.
I want to have the textfields setup into an array and when I get a value (ex "123456") I want to split the numbers 6 ways and add 1 digit per textfield (1,2,3,4,5,6) and vice versa. How do I go about doing this?
Right now my code for my current setup is:
import UIKit
import FirebaseAuth
class PhoneAuthenticationViewController: UIViewController {
@IBOutlet weak var Auth1: UITextField!
@IBOutlet weak var Auth2: UITextField!
@IBOutlet weak var Auth3: UITextField!
@IBOutlet weak var Auth4: UITextField!
@IBOutlet weak var Auth5: UITextField!
@IBOutlet weak var Auth6: UITextField!
@IBAction func textEditDidBegin(_ sender: UITextField) {
print("textEditDidBegin has been pressed")
if !(sender.text?.isEmpty)!{
sender.selectAll(self)
//buttonUnSelected()
}else{
print("Empty")
sender.text = " "
}
}
@IBAction func textEditChanged(_ sender: UITextField) {
print("textEditChanged has been pressed")
let count = sender.text?.count
//
if count == 1{
switch sender {
case Auth1:
Auth2.becomeFirstResponder()
case Auth2:
Auth3.becomeFirstResponder()
case Auth3:
Auth4.becomeFirstResponder()
case Auth4:
Auth5.becomeFirstResponder()
case Auth5:
Auth6.becomeFirstResponder()
case Auth6:
Auth6.resignFirstResponder()
default:
print("default")
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
Auth1.delegate = self
Auth2.delegate = self
Auth3.delegate = self
Auth4.delegate = self
Auth5.delegate = self
Auth6.delegate = self
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
Auth1.becomeFirstResponder()
}
}
Stringin Swift is also aSequence, meaning you can iterate over the characters as if it were an array