0% found this document useful (0 votes)
30 views2 pages

Table View Controller

The document shows code for using a phone number input field library in a table view controller. It initializes two phone number text fields with different display modes, validates input, and displays a country list when needed.

Uploaded by

Mubashir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views2 pages

Table View Controller

The document shows code for using a phone number input field library in a table view controller. It initializes two phone number text fields with different display modes, validates input, and displays a country list when needed.

Uploaded by

Mubashir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

//

// 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