【问题标题】:Send data from TableView (present modally) to ViewController inside textfield将数据从 TableView(以模态方式呈现)发送到文本字段内的 ViewController
【发布时间】:2020-09-30 22:14:10
【问题描述】:

在我的 HomeViewController 中,我有一个文本字段和一个按钮。用户可以写一个城市或触摸这个按钮来查找一个城市。当按钮被触摸时,一个 CitiesTableView 通过 segue 显示(以模态方式存在)。选择表格列表的城市时,我想将此选定的城市发送到主页上的文本字段中。


class HomeViewController: UIViewController{

    @IBOutlet weak var tfSearchCity: UITextField!
   //Button with Segue to present Modally CitiesTableViewController
    
    var cities = [Cities]()   
}
// Protocol to receive data
extension HomeViewController: CitieFinderDelegate{
    func addCity(city: Cities){
            tfSearchCity.text = city.City
            print(city)
        }
    }
}

我创建了一个协议来在视图之间传递数据,但它不起作用。


protocol CitieFinderDelegate {
    func addCity(city: Cities)
}
// this TableView are presenting Modally
class CitiesTableViewController: UITableViewController {

    var cities: [Cities] = []
    var delegate: CitieFinderDelegate?

    override func viewDidLoad() {
        super.viewDidLoad() 

    }
    // MARK: - Table view data source

     override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let city = cities[indexPath.row]

        let findCity = Cities(UF: city.UF, City: city.City)
        delegate?.addCity(city: findCity)
  }
   
 // MARK: - Action to close the view
    
    @IBAction func close(_ sender: UIButton) {
        dismiss(animated: true, completion: nil)
    }
    }}

【问题讨论】:

    标签: ios swift swift4


    【解决方案1】:

    似乎代理尚未分配给 HomeViewController 的实例。 确保您的 HomeViewController 中有以下代码

    override func prepare(for segue: UIStoryboardSegue, sender _: Any?) {
        if segue.identifier == "segue identifier name",
            let citiesViewController = segue.destination as? CitiesTableViewController {
            // cities assigned
            citiesViewController.delegate = self
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 2016-11-14
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多