簡體   English   中英

在 didSelectAtRow 時將數據傳遞給 UITextField 用於下一個 viewController

[英]Passing data to UITextField for next viewController when didSelectAtRow

當我試圖將數據從一個視圖 controller 傳遞到另一個徹底的didSelectRowAt時,應用程序崩潰了。

如何使用didSelectAtRow將數據傳遞到另一個視圖 controller 的文本字段?

這是我的代碼

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
     let  vc = self.storyboard?.instantiateViewController(withIdentifier: "DiscountDetailsController") as! DiscountDetailsController

     // MARK: This one is not setting data to textField in next view controller
     vc.offerName.text = discountArray?[indexPath.row].offerName

     // vc.offerValue.text = String((discountArray?[indexPath.row].percentage)! )
     // vc.delete.isHidden = false

     self.navigationController?.pushViewController(vc, animated: true)
}

您不應該嘗試直接操作另一個視圖控制器的視圖。 這違反了封裝原則。 (這是一個糟糕的設計,可能會導致像你描述的那樣的錯誤。)

相反,給DiscountDetailsController一個 String 屬性offerNameString 在上面的 didSelect 方法中設置該屬性,然后在DiscountDetailsController的 viewWillAppear 中,根據需要將offerNameString安裝到您的視圖中。

我不明白你的“......不是在傳遞數據時它崩潰了。” 陳述。 你的代碼崩潰了嗎? 如果是這樣,可能是因為您的DiscountDetailsControllerofferName屬性是一個隱式展開的可選選項,它是 nil。 那會導致崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM