Thanks you, here my code for RegisterView
Code Block import SwiftUI |
| class RegisterView : UIView, UITextFieldDelegate { |
|
| @IBOutlet weak var username : UITextField? |
|
| @IBOutlet weak var password : UITextField? |
|
| @IBOutlet weak var repassword : UITextField? |
|
| @IBOutlet weak var email : UITextField? |
|
| @IBOutlet weak var displayname : UITextField? |
|
| var contentView : UIView? |
|
| public static var nibName: String { |
|
| return String(describing: self.self) |
|
| } |
|
| |
|
| public static var nib: UINib { |
|
| let bundle = Bundle(for: self.self) |
|
| return UINib(nibName: self.nibName, bundle: bundle) |
|
| } |
|
|
|
| override init(frame: CGRect) { |
|
| super.init(frame: frame) |
|
| self.setupView() |
|
| } |
|
| required init?(coder : NSCoder) { |
|
| super.init(coder: coder) |
|
| setupView() |
|
| } |
|
| private func setupView () { |
|
| guard let view = Self.nib.instantiate(withOwner: self, options: nil).first as? UIView else { fatalError("Error loading \(self) from nib") } |
|
| addSubview(view) |
|
| view.translatesAutoresizingMaskIntoConstraints = false |
|
| if #available(iOS 11.0, *) { |
|
| view.leadingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.leadingAnchor, constant: 0).isActive = true |
|
| view.topAnchor.constraint(equalTo: self.safeAreaLayoutGuide.topAnchor, constant: 0).isActive = true |
|
| view.trailingAnchor.constraint(equalTo: self.safeAreaLayoutGuide.trailingAnchor, constant: 0).isActive = true |
|
| view.bottomAnchor.constraint(equalTo: self.safeAreaLayoutGuide.bottomAnchor, constant: 0).isActive = true |
|
| } |
|
| self.displayname?.delegate = self |
| self.email?.delegate = self |
| self.username?.delegate = self |
| self.password?.delegate = self |
| self.repassword?.delegate = self |
| super.layoutSubviews() |
| } |
| |
| func textFieldShouldReturn(_ textField: UITextField) -> Bool { |
|
| textField.resignFirstResponder() |
|
| return true |
| } |
|
| func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { |
|
| textField.resignFirstResponder() |
|
| return true |
|
| } |
|
| func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { |
| return true |
| } |
|
| public func register(username: String, email : String, displayName : String, password : String) { |
|
| } |
|
| } |
|
|
And here's the code for add RegisterView into parent view (I'm planning to switch between RegisterView and LoginView in parent view)
Code Block @IBAction func register(_ sender: UIButton) { |
| self.processView?.showTextOnly(text: "register button clicked") |
|
| |
|
| if (self.registerView != nil) { |
|
| self.upperView.removeChildView() |
|
| self.upperView.addSubview(registerView!) |
|
| return |
|
| } |
|
| self.registerView = RegisterView(); |
|
| self.registerView?.frame = upperView.bounds |
|
| self.registerView?.autoresizingMask = [.flexibleWidth, .flexibleHeight] |
|
| self.upperView.addSubview(registerView!) |
|
| self.registerView?.center = CGPoint(x : upperView.frame.width / 2, |
|
| y : upperView.frame.height / 2) |
|
| } |