Я использую делегат для получения телефонного кода страны.
здесь я создал делегата:
public protocol CountryListDelegate: class {
func selectedCountry(country: Country)
}
public class CountryList: UIViewController, UITableViewDelegate, UITableViewDataSource, UISearchResultsUpdating {
public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath) as! CountryCell
let country = cell.country!
self.searchController?.isActive = false
self.delegate?.selectedCountry(country: country)
tableView.deselectRow(at: indexPath, animated: true)
self.tableView.reloadData()
self.dismiss(animated: true, completion: nil)
}
}
здесь я не получаю значение в поле countryCodeTextfield:
class ViewController: UIViewController, CountryListDelegate, UITextFieldDelegate {
@IBOutlet weak var countryCodeTextfield: UITextField!
@IBOutlet weak var counrtryCodeBtn: UIButton!
@IBOutlet weak var mobileNumTextfield: UITextField!
var countryList = CountryList()
@IBAction func submitBtnAction(_ sender: UIButton) {
print("in submit")
if sender.tag == 1 {
if (mobileNumTextfield.text?.count)!<1 {
Constants.showAlertView(alertViewTitle: "", Message: "Please Enter Mobile Number", on: self)
return
}
self.loginService()
} else {
let navController = UINavigationController(rootViewController: countryList)
self.present(navController, animated: true, completion: nil)
}
}
func selectedCountry(country: Country) {
print("in country")
self.countryCodeTextfield.text="+\(country.phoneExtension)"
print("\(country.flag!) \(country.name!), \(country.countryCode), \(country.phoneExtension)")
}
выше табличного представления присутствует, но selectedCountry
не вызывает также вывод на печать сообщения.
, пожалуйста, помогите мне в коде.