You are on page 1of 2

//

// TableViewController.swift
// FlagPhoneNumber_Example
//
// Created by Aurelien on 24/12/2018.
// Copyright © 2018 CocoaPods. All rights reserved.
//

import UIKit
import FlagPhoneNumber

class TableViewController: UITableViewController {

@IBOutlet weak var firstPhoneNumberTextField: FPNTextField!


@IBOutlet weak var secondPhoneNumberTextField: FPNTextField!

var listController: FPNCountryListViewController =


FPNCountryListViewController(style: .grouped)
var repository: FPNCountryRepository = FPNCountryRepository()

override func viewDidLoad() {


super.viewDidLoad()

title = "In Table View"


tableView.delaysContentTouches = false

firstPhoneNumberTextField.displayMode = .picker
firstPhoneNumberTextField.delegate = self

secondPhoneNumberTextField.displayMode = .list
secondPhoneNumberTextField.delegate = self

listController.setup(repository:
secondPhoneNumberTextField.countryRepository)

listController.didSelect = { [weak self] country in


self?.secondPhoneNumberTextField.setFlag(countryCode:
country.code)
}
}

@objc func dismissCountries() {


listController.dismiss(animated: true, completion: nil)
}
}

extension TableViewController: FPNTextFieldDelegate {

func fpnDisplayCountryList() {
let navigationViewController =
UINavigationController(rootViewController: listController)

listController.navigationItem.leftBarButtonItem =
UIBarButtonItem(barButtonSystemItem: .stop, target: self, action:
#selector(dismissCountries))

self.present(navigationViewController, animated: true, completion: nil)


}
func fpnDidValidatePhoneNumber(textField: FPNTextField, isValid: Bool) {
textField.rightViewMode = .always
textField.rightView = UIImageView(image: isValid ?
#imageLiteral(resourceName: "success") : #imageLiteral(resourceName: "error"))

print(
isValid,
textField.getFormattedPhoneNumber(format: .E164) ?? "E164: nil",
textField.getFormattedPhoneNumber(format: .International) ??
"International: nil",
textField.getFormattedPhoneNumber(format: .National) ??
"National: nil",
textField.getFormattedPhoneNumber(format: .RFC3966) ?? "RFC3966:
nil",
textField.getRawPhoneNumber() ?? "Raw: nil"
)
}

func fpnDidSelectCountry(name: String, dialCode: String, code: String) {


print(name, dialCode, code)
}
}

You might also like