You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
581 lines
22 KiB
581 lines
22 KiB
//
|
|
// KycForm1ViewController.swift
|
|
// GMERemittance
|
|
//
|
|
// Created by gme_2 on 12/09/2018.
|
|
//Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
|
|
//
|
|
|
|
//"select_issue_date_text" = "Select issue date";
|
|
//"select_expiry_date_text" = "Select expiry date";
|
|
|
|
import UIKit
|
|
import XLPagerTabStrip
|
|
|
|
class KycForm1Model {
|
|
var firstName = ""
|
|
var middleName = ""
|
|
var lastName = ""
|
|
var gender = ""
|
|
// var dob = ""
|
|
var mobile = ""
|
|
var email = ""
|
|
var nativeCountry = ""
|
|
var country = ""
|
|
var province = ""
|
|
var occupation = ""
|
|
var referralCode = ""
|
|
}
|
|
|
|
class Occupation {
|
|
var title: String?
|
|
var id: String?
|
|
}
|
|
|
|
struct KycForm1FieldKeys {
|
|
static let firstName = "fullname"
|
|
static let gender = "gender"
|
|
static let mobileNumber = "mobile number"
|
|
static let email = "email"
|
|
static let nativeCountry = "native country"
|
|
static let country = "address"
|
|
static let province = "province"
|
|
static let occupation = "occupation"
|
|
static let referralCode = "referralCode"
|
|
}
|
|
|
|
class KycForm1ViewController: UIViewController {
|
|
|
|
struct Constants {
|
|
static let segmentBackgroundViewColor = UIColor.init(hex: "E7EDF2")
|
|
static let stateRedColor = UIColor.init(hex: "#EC1C24")
|
|
static let errorBorderWidth = AppConstants.errorBorderWidth
|
|
static let errorLabelFont = Fonts.Error.font
|
|
static let clearColor = UIColor.clear
|
|
static let male = "male_text".localized()
|
|
static let female = "female_text".localized()
|
|
static let other = "other_text".localized()
|
|
static let cancelTitleString = "cancel_text".localized()
|
|
}
|
|
|
|
struct StringConstants {
|
|
let fullname = "full_name_text".localized()
|
|
let fullnamePlaceholder = "full_name_placeholder_text".localized()
|
|
let mobileNumber = "mobile_number_text".localized()
|
|
let mobilePlaceholder = "mobile_number_placeholder_text".localized()
|
|
let email = "email_text_optional".localized()
|
|
let emailPlaceholder = "placeholder_enter_receiver_email_text".localized()
|
|
let gender = "gender_text".localized()
|
|
let genderPlacholder = "gender_placeholder_text".localized()
|
|
let nativeCountry = "native_country_text".localized()
|
|
let nativeCountryPlaceholder = "native_country_placeholder_text".localized()
|
|
let addressInKorea = "address_in_korea_text".localized()
|
|
let addressPlaceholder = "address_in_korea_text".localized()
|
|
let province = "province_text".localized()
|
|
let provincePlaceholder = "province_placeholder_text".localized()
|
|
let occupation = "occupation_text".localized()
|
|
let occupationPlaceholder = "occupation_placeholder_text".localized()
|
|
let saveAndCoutinueText = "save_and_continue_text".localized()
|
|
}
|
|
|
|
// MARK: IBOutlets
|
|
|
|
@IBOutlet weak var scrollView: UIScrollView!
|
|
// validation labels
|
|
@IBOutlet weak var headerTItleLabel: UILabel!
|
|
@IBOutlet weak var firstNameErrorLabel: UILabel!
|
|
@IBOutlet weak var middleNameErrorLabel: UILabel!
|
|
@IBOutlet weak var lastNameErrorLabel: UILabel!
|
|
@IBOutlet weak var genderErrorLabel: UILabel!
|
|
@IBOutlet weak var dobErrorLabel: UILabel!
|
|
@IBOutlet weak var mobileNumberErrorLabel: UILabel!
|
|
@IBOutlet weak var emailErrorLabel: UILabel!
|
|
@IBOutlet weak var nativeCountryErrorLabel: UILabel!
|
|
@IBOutlet weak var countryErrorLabel: UILabel!
|
|
@IBOutlet weak var provinceErrorLabel: UILabel!
|
|
@IBOutlet weak var occupationErrorLabel: UILabel!
|
|
@IBOutlet weak var referralCodeErrorLabel: UILabel!
|
|
|
|
// textfields
|
|
@IBOutlet weak var firstNameTextField: UITextField!
|
|
@IBOutlet weak var middleNmaeTextField: UITextField!
|
|
@IBOutlet weak var lastNameTextField: UITextField!
|
|
@IBOutlet weak var genderTextField: UITextField!
|
|
@IBOutlet weak var dobTextField: UITextField!
|
|
@IBOutlet weak var mobileNumberTextField: UITextField!
|
|
@IBOutlet weak var emailTextField: UITextField!
|
|
@IBOutlet weak var nativeCountryTextField: UITextField!
|
|
@IBOutlet weak var countryTextField: UITextField!
|
|
@IBOutlet weak var provinceTextField: UITextField!
|
|
@IBOutlet weak var occupationTextField: UITextField!
|
|
@IBOutlet weak var referralCodeTextField: UITextField!
|
|
|
|
// title labels
|
|
|
|
@IBOutlet weak var fullnameTitleLabel: UILabel!
|
|
@IBOutlet weak var mobileNumberTitleLabel: UILabel!
|
|
@IBOutlet weak var emailTitleLabel: UILabel!
|
|
@IBOutlet weak var genderTitleLabel: UILabel!
|
|
@IBOutlet weak var nativeCountryTitleLabel: UILabel!
|
|
@IBOutlet weak var addressInKoreaTitleLabel: UILabel!
|
|
@IBOutlet weak var provinceTitleLabel: UILabel!
|
|
@IBOutlet weak var occupationTitleLabel: UILabel!
|
|
|
|
@IBOutlet weak var saveAndContinue: UIButton!
|
|
|
|
// MARK: Properties
|
|
|
|
var presenter: KycForm1ModuleInterface?
|
|
var kycForm1Model: KycForm1Model = KycForm1Model()
|
|
var continueActionInitiated = false
|
|
let datePicker = UIDatePicker()
|
|
|
|
var errorTextFieldDict: [String: UITextField] = [:]
|
|
var errorLabelsDict: [String: UILabel] = [:]
|
|
|
|
var errorLabels: [UILabel] = []
|
|
var textfields: [UITextField] = []
|
|
var delegate: KYCForm1Delegate?
|
|
var countries: [KeyValueModel]?
|
|
var occupations: [KeyValueModel]?
|
|
|
|
var kycModel: KycModel? {
|
|
didSet {
|
|
self.countries = kycModel?.nativeCountry
|
|
self.occupations = kycModel?.occupations
|
|
self.proviences = kycModel?.city
|
|
}
|
|
}
|
|
|
|
var proviences: [KeyValueModel]?
|
|
|
|
var selectedCountry: SendMoneyCountryViewModel? {
|
|
didSet {
|
|
self.nativeCountryTextField.text = selectedCountry?.name
|
|
self.kycForm1Model.nativeCountry = selectedCountry?.id ?? ""
|
|
}
|
|
}
|
|
|
|
var selectedProvience: KeyValueModel? {
|
|
didSet {
|
|
self.provinceTextField.text = selectedProvience?.text
|
|
self.kycForm1Model.province = selectedProvience?.id ?? ""
|
|
|
|
}
|
|
}
|
|
|
|
var selectedOccupation: KeyValueModel? {
|
|
didSet {
|
|
self.occupationTextField.text = selectedOccupation?.text
|
|
self.kycForm1Model.occupation = selectedOccupation?.id ?? ""
|
|
}
|
|
}
|
|
|
|
// MARK: VC's Life cycle
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
self.setup()
|
|
presenter?.viewIsReady()
|
|
|
|
}
|
|
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
self.view.endEditing(true)
|
|
removeFocus()
|
|
}
|
|
|
|
override func viewWillDisappear(_ animated: Bool) {
|
|
super.viewWillDisappear(animated)
|
|
self.view.endEditing(true)
|
|
self.continueActionInitiated = false
|
|
self.validate()
|
|
}
|
|
|
|
|
|
// MARK: IBActions
|
|
|
|
@IBAction func save(_ sender: UIButton) {
|
|
self.view.endEditing(true)
|
|
self.continueActionInitiated = true
|
|
self.delegate?._continue(model: self.kycForm1Model)
|
|
// validate()
|
|
}
|
|
|
|
// MARK: Other Functions
|
|
|
|
|
|
private func removeFocus() {
|
|
self.textfields.forEach({
|
|
$0.resignFirstResponder()
|
|
})
|
|
}
|
|
|
|
private func createModel() {
|
|
self.kycForm1Model.firstName = self.firstNameTextField.text!
|
|
self.kycForm1Model.middleName = self.middleNmaeTextField.text!
|
|
self.kycForm1Model.lastName = self.lastNameTextField.text!
|
|
self.kycForm1Model.gender = self.genderTextField.text!
|
|
// self.kycForm1Model.dob = self.dobTextField.text!
|
|
self.kycForm1Model.mobile = self.mobileNumberTextField.text!
|
|
self.kycForm1Model.email = self.emailTextField.text!
|
|
self.kycForm1Model.country = self.countryTextField.text! // this is addres field
|
|
self.kycForm1Model.referralCode = self.referralCodeTextField.text ?? ""
|
|
}
|
|
|
|
|
|
private func setup() {
|
|
// all setup should be done here
|
|
hideErrorLabels()
|
|
setupErrorLabels()
|
|
setupErrorTextFields()
|
|
setupDelegates()
|
|
self.setupDatePicker()
|
|
self.setupEmail()
|
|
configureLanguage()
|
|
}
|
|
|
|
private func configureLanguage() {
|
|
self.headerTItleLabel.text = "personal_subtitle_text".localized()
|
|
self.fullnameTitleLabel.text = StringConstants().fullname
|
|
self.mobileNumberTitleLabel.text = StringConstants().mobileNumber
|
|
self.emailTitleLabel.text = StringConstants().email
|
|
self.genderTitleLabel.text = StringConstants().gender
|
|
self.nativeCountryTitleLabel.text = StringConstants().nativeCountry
|
|
self.addressInKoreaTitleLabel.text = StringConstants().addressInKorea
|
|
self.provinceTitleLabel.text = StringConstants().province
|
|
self.occupationTitleLabel.text = StringConstants().occupation
|
|
self.saveAndContinue.setTitle(StringConstants().saveAndCoutinueText, for: UIControlState.normal)
|
|
|
|
self.firstNameTextField.placeholder = StringConstants().fullnamePlaceholder
|
|
self.mobileNumberTextField.placeholder = StringConstants().mobilePlaceholder
|
|
self.emailTextField.placeholder = StringConstants().emailPlaceholder
|
|
self.genderTextField.placeholder = StringConstants().genderPlacholder
|
|
self.nativeCountryTextField.placeholder = StringConstants().nativeCountryPlaceholder
|
|
self.countryTextField.placeholder = StringConstants().addressPlaceholder
|
|
self.provinceTextField.placeholder = StringConstants().provincePlaceholder
|
|
self.occupationTextField.placeholder = StringConstants().occupationPlaceholder
|
|
}
|
|
|
|
private func setupEmail() {
|
|
if let email = UserDefaults.standard.string(forKey: UserKeys.email) {
|
|
self.emailTextField.text = email
|
|
self.emailTextField.isUserInteractionEnabled = false
|
|
}
|
|
}
|
|
|
|
private func setupDelegates() {
|
|
self.firstNameTextField.delegate = self
|
|
self.lastNameTextField.delegate = self
|
|
self.middleNmaeTextField.delegate = self
|
|
self.genderTextField.delegate = self
|
|
self.emailTextField.delegate = self
|
|
self.dobTextField.delegate = self
|
|
self.countryTextField.delegate = self
|
|
self.nativeCountryTextField.delegate = self
|
|
self.occupationTextField.delegate = self
|
|
self.mobileNumberTextField.delegate = self
|
|
self.provinceTextField.delegate = self
|
|
}
|
|
|
|
private func setupDatePicker() {
|
|
self.datePicker.datePickerMode = .date
|
|
self.dobTextField.inputView = datePicker
|
|
datePicker.maximumDate = Date()
|
|
self.datePicker.addTarget(self, action: #selector(handleDatePicker(sender:)), for: .valueChanged)
|
|
}
|
|
|
|
@objc private func handleDatePicker(sender: UIDatePicker) {
|
|
let dateFormatter = DateFormatter()
|
|
// test ccr
|
|
dateFormatter.dateFormat = AppConstants.dateFormat
|
|
self.dobTextField.text = dateFormatter.string(from: sender.date)
|
|
}
|
|
|
|
private func validate() {
|
|
self.createModel()
|
|
self.delegate?.addModel(model: self.kycForm1Model)
|
|
}
|
|
|
|
private func hideErrorLabels() {
|
|
[firstNameErrorLabel, middleNameErrorLabel, lastNameErrorLabel, genderErrorLabel, dobErrorLabel, mobileNumberErrorLabel, emailErrorLabel, nativeCountryErrorLabel, countryErrorLabel, provinceErrorLabel, occupationErrorLabel, referralCodeErrorLabel].forEach({
|
|
$0?.isHidden = true
|
|
})
|
|
}
|
|
|
|
private func setupErrorLabels() {
|
|
self.errorLabels = [firstNameErrorLabel, middleNameErrorLabel, lastNameErrorLabel, genderErrorLabel, dobErrorLabel, mobileNumberErrorLabel, emailErrorLabel, nativeCountryErrorLabel, nativeCountryErrorLabel, provinceErrorLabel, occupationErrorLabel, countryErrorLabel, referralCodeErrorLabel]
|
|
|
|
self.errorLabels.forEach({
|
|
$0.font = Constants.errorLabelFont
|
|
})
|
|
|
|
self.errorLabelsDict =
|
|
[
|
|
KycForm1FieldKeys.firstName: self.firstNameErrorLabel,
|
|
KycForm1FieldKeys.gender: self.genderErrorLabel,
|
|
// KycForm1FieldKeys.dob: self.dobErrorLabel,
|
|
KycForm1FieldKeys.mobileNumber: self.mobileNumberErrorLabel,
|
|
KycForm1FieldKeys.email: self.emailErrorLabel,
|
|
KycForm1FieldKeys.nativeCountry: self.nativeCountryErrorLabel,
|
|
KycForm1FieldKeys.country: self.countryErrorLabel,
|
|
KycForm1FieldKeys.province: self.provinceErrorLabel,
|
|
KycForm1FieldKeys.occupation: self.occupationErrorLabel
|
|
]
|
|
}
|
|
|
|
private func setupErrorTextFields() {
|
|
|
|
self.textfields = [firstNameTextField, lastNameTextField, middleNmaeTextField, genderTextField, dobTextField, mobileNumberTextField, emailTextField, nativeCountryTextField, countryTextField, provinceTextField, occupationTextField]
|
|
firstNameTextField.tag = 1
|
|
middleNmaeTextField.tag = 2
|
|
lastNameTextField.tag = 3
|
|
genderTextField.tag = 4
|
|
dobTextField.tag = 5
|
|
mobileNumberTextField.tag = 6
|
|
emailTextField.tag = 7
|
|
nativeCountryTextField.tag = 8
|
|
countryTextField.tag = 9
|
|
provinceTextField.tag = 10
|
|
occupationTextField.tag = 11
|
|
|
|
|
|
self.errorTextFieldDict =
|
|
[
|
|
KycForm1FieldKeys.firstName: self.firstNameTextField,
|
|
KycForm1FieldKeys.gender: self.genderTextField,
|
|
KycForm1FieldKeys.mobileNumber: self.mobileNumberTextField,
|
|
KycForm1FieldKeys.email: self.emailTextField,
|
|
KycForm1FieldKeys.nativeCountry: self.nativeCountryTextField,
|
|
KycForm1FieldKeys.country: self.countryTextField,
|
|
KycForm1FieldKeys.province: self.provinceTextField,
|
|
KycForm1FieldKeys.occupation: self.occupationTextField
|
|
]
|
|
}
|
|
|
|
private func showBorder(textfield :UITextField?) {
|
|
guard let textfield = textfield else {return}
|
|
textfield.layer.borderColor = Constants.stateRedColor.cgColor
|
|
textfield.layer.borderWidth = Constants.errorBorderWidth
|
|
textfield.layer.addShadow(with: Constants.stateRedColor)
|
|
}
|
|
|
|
private func show( error: String, label: UILabel?) {
|
|
// scroll to the top of the view
|
|
guard let label = label else {return}
|
|
label.textColor = Constants.stateRedColor
|
|
label.isHidden = false
|
|
label.text = error
|
|
}
|
|
}
|
|
|
|
// MARK: KycForm1ViewInterface
|
|
extension KycForm1ViewController: KycForm1ViewInterface {
|
|
// todo remove this from this viper flow. its now in parent
|
|
func show(result: (doesNotSucks: Bool, errorsDick: [String : String])) {
|
|
var position = 11
|
|
if result.doesNotSucks { // if isValid
|
|
|
|
// its is not valid, lets go to security page only if continue button was tapped
|
|
if self.continueActionInitiated {
|
|
self.delegate?._continue(model: self.kycForm1Model)
|
|
}
|
|
}else {
|
|
result.errorsDick.forEach({
|
|
let label = errorLabelsDict[$0.key]
|
|
self.show(error: $0.value, label: label)
|
|
let textfield = errorTextFieldDict[$0.key]
|
|
self.showBorder(textfield: textfield)
|
|
let tag = (textfield?.tag ?? position)
|
|
position = tag < position ? tag : position
|
|
if self.textfields.filter({
|
|
$0.tag == tag
|
|
}).first != nil {
|
|
// Todo
|
|
// scroll to view here
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func show(model: KycModel) {
|
|
self.delegate?.show(model: model)
|
|
self.kycModel = model
|
|
}
|
|
|
|
func show(error: String) {
|
|
self.alert(message: error)
|
|
}
|
|
|
|
func showLoading() {
|
|
self.showProgressHud()
|
|
}
|
|
|
|
func hideLoading() {
|
|
self.hideProgressHud()
|
|
}
|
|
|
|
}
|
|
|
|
extension KycForm1ViewController: IndicatorInfoProvider {
|
|
func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo {
|
|
return IndicatorInfo.init(title: "personal_title_text".localized())
|
|
}
|
|
}
|
|
|
|
|
|
extension KycForm1ViewController: UITextFieldDelegate {
|
|
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
|
|
textField.layer.addShadow(with: Constants.clearColor)
|
|
switch textField {
|
|
case genderTextField:
|
|
self.genderErrorLabel.isHidden = true
|
|
genderTextField.layer.borderWidth = 0
|
|
self.view.endEditing(true)
|
|
self.showGenderPicker()
|
|
return false
|
|
case nativeCountryTextField:
|
|
self.nativeCountryErrorLabel.isHidden = true
|
|
nativeCountryTextField.layer.borderWidth = 0
|
|
self.view.endEditing(true)
|
|
self.showCountryPickerview()
|
|
return false
|
|
case provinceTextField:
|
|
self.provinceErrorLabel.isHidden = true
|
|
provinceTextField.layer.borderWidth = 0
|
|
self.view.endEditing(true)
|
|
self.showProviencePickerview()
|
|
return false
|
|
case occupationTextField:
|
|
self.occupationErrorLabel.isHidden = true
|
|
occupationTextField.layer.borderWidth = 0
|
|
self.view.endEditing(true)
|
|
self.showOccupationPickerView()
|
|
return false
|
|
default:
|
|
return true
|
|
}
|
|
}
|
|
|
|
|
|
func textFieldDidBeginEditing(_ textField: UITextField) {
|
|
textField.layer.addShadow(with: Constants.clearColor)
|
|
textField.layer.borderWidth = 0
|
|
switch textField {
|
|
case firstNameTextField:
|
|
self.firstNameErrorLabel.isHidden = true
|
|
case middleNmaeTextField:
|
|
self.middleNameErrorLabel.isHidden = true
|
|
case lastNameTextField:
|
|
self.lastNameErrorLabel.isHidden = true
|
|
case genderTextField:
|
|
self.genderErrorLabel.isHidden = true
|
|
case dobTextField:
|
|
self.dobErrorLabel.isHidden = true
|
|
case mobileNumberTextField:
|
|
self.mobileNumberErrorLabel.isHidden = true
|
|
case emailTextField:
|
|
self.emailErrorLabel.isHidden = true
|
|
case nativeCountryTextField:
|
|
self.nativeCountryErrorLabel.isHidden = true
|
|
case countryTextField:
|
|
self.countryErrorLabel.isHidden = true
|
|
case provinceTextField:
|
|
self.provinceErrorLabel.isHidden = true
|
|
case occupationTextField:
|
|
self.occupationErrorLabel.isHidden = true
|
|
default:
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
extension KycForm1ViewController {
|
|
private func showCountryPickerview() {
|
|
let viewcontroller = UIStoryboard.init(name: "CountryPicker", bundle: nil).instantiateViewController(withIdentifier: "CountryPickerViewController") as! CountryPickerViewController
|
|
let _countries = self.countries ?? []
|
|
let data: [SendMoneyCountryViewModel] = _countries.map({
|
|
let model = SendMoneyCountryViewModel()
|
|
model.id = $0.id
|
|
model.name = $0.text
|
|
// model.code = $0.code
|
|
return model
|
|
})
|
|
viewcontroller.data = data
|
|
viewcontroller.doneAction = self.countrySelected
|
|
// viewcontroller.defaultSelectedData = [self.selectedCountry]
|
|
viewcontroller.type = PickerTitle.country
|
|
self.present(viewcontroller, animated: true, completion: nil)
|
|
}
|
|
|
|
|
|
func countrySelected(models: [SendMoneyCountryViewModel]) {
|
|
self.selectedCountry = models.first
|
|
}
|
|
|
|
|
|
private func showGenderPicker() {
|
|
let alertcontroller = UIAlertController.init(title: "gender_text".localized(), message: nil, preferredStyle: .actionSheet)
|
|
alertcontroller.view.tintColor = UIColor.init(hex: "#7b7a7a")
|
|
let maleAction = UIAlertAction(title: Constants.male, style: .default, handler: { _ in
|
|
self.genderTextField.text = Constants.male
|
|
})
|
|
|
|
let femaleAction = UIAlertAction(title: Constants.female, style: .default, handler: { _ in
|
|
self.genderTextField.text = Constants.female
|
|
})
|
|
|
|
let otherAction = UIAlertAction(title: Constants.other, style: .default, handler: { _ in
|
|
self.genderTextField.text = Constants.other
|
|
})
|
|
|
|
|
|
let cancelAction = UIAlertAction(title: Constants.cancelTitleString, style: .cancel, handler: nil)
|
|
|
|
alertcontroller.addAction(maleAction)
|
|
alertcontroller.addAction(femaleAction)
|
|
alertcontroller.addAction(otherAction)
|
|
alertcontroller.addAction(cancelAction)
|
|
self.present(alertcontroller, animated: true, completion: nil)
|
|
}
|
|
|
|
private func showOccupationPickerView() {
|
|
let viewcontroller = self.getPickerViewController()
|
|
let occupations = self.occupations ?? []
|
|
let names = occupations.compactMap({$0.text})
|
|
viewcontroller.data = names
|
|
viewcontroller.type = PickerTitle.occupation
|
|
viewcontroller.doneAction = self.occupationSelected
|
|
self.present(viewcontroller, animated: true, completion: nil)
|
|
}
|
|
|
|
private func getPickerViewController()-> ItemsPickerViewController {
|
|
return UIStoryboard.init(name: "ItemsPicker", bundle: nil).instantiateViewController(withIdentifier: "ItemsPickerViewController") as! ItemsPickerViewController
|
|
}
|
|
|
|
func occupationSelected(occupations: [String]) {
|
|
let _occupation = self.occupations?.filter({($0.text ?? "") == (occupations.first ?? "") }).first
|
|
self.selectedOccupation = _occupation
|
|
}
|
|
|
|
|
|
private func showProviencePickerview() {
|
|
let viewcontroller = self.getPickerViewController()
|
|
let proviences = self.proviences
|
|
let names = (proviences ?? []).compactMap({$0.text})
|
|
viewcontroller.data = names
|
|
viewcontroller.type = PickerTitle.state
|
|
viewcontroller.doneAction = self.provienceSelected
|
|
self.present(viewcontroller, animated: true, completion: nil)
|
|
}
|
|
|
|
func provienceSelected(provience: [String]) {
|
|
let _provience = (self.proviences ?? []).filter({
|
|
($0.text ?? "") == (provience.first ?? "")
|
|
})
|
|
|
|
self.selectedProvience = _provience.first
|
|
}
|
|
}
|