我的情况是,我正在将值从Viewcontroller B
传递到Viewcontroller A
。在Viewcontroller A
中,我使用CustomCell
textview
维护表视图(我仅使用一行)。在此文本视图中,我需要显示我从Viewcontroller B
那里获得了价值。在这里,下面我正在使用的代码。请针对我的情况提供一些想法。
class ViewcontrollerB: UIViewController, isAbleToReceiveData {
func pass(data: String) {
print("USER: \(data)")
}
....
....
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.tableview.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomCell
// From TextView Placeholder and Color
cell.from_textview.text = "Enter your text" // here I need to show received “data” from VC_B.
cell.from_textview.textColor = UIColor.lightGray
return cell
}
}
答案 0 :(得分:1)
创建一个变量,该变量可以从VC_A
的任何地方访问
var stringReceived: String? = nil
现在在功能中
func pass(data: String) {
print("USER: \(data)")
//add the following
stringReceived = data
self.UITableView_name.reloadData()
}
在func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
将以下内容从cell.from_textview.text = "Enter your text"
更改为cell.from_textview.text = stringReceived!
因此,一旦收到数据,基本上使用reloadData()
刷新UITableView。
答案 1 :(得分:0)
func pass(data: String) {
let indexPath = IndexPath.init(row: 0, section: 0)
let cell = tableView.cellForRow(at: indexPath) as CustomCell
cell.from_textview.text = data
}
由于只有1个单元格,因此它将成为第0行第0节,而tableView.reloadData()
也将起作用。但是如果您有多个单元格,并且想要更改1个特定的单元格,最好只呼叫该单元格,甚至调用self.tableView.reloadRows(at: [IndexPath], with: UITableViewRowAnimation)