[英]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
安裝到您的視圖中。
我不明白你的“......不是在傳遞數據時它崩潰了。” 陳述。 你的代碼崩潰了嗎? 如果是這樣,可能是因為您的DiscountDetailsController
的offerName
屬性是一個隱式展開的可選選項,它是 nil。 那會導致崩潰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.