ViewControllerA 将推送到 ViewControllerB。 ViewcontrollerB 是一个 UITableView
,它有一个在加载时注册的自定义 UITableViewCell
。
这是我的自定义 UITableViewCell
:
override func awakeFromNib() {
super.awakeFromNib()
// Here is me attempting to pass my data from my view controller
someButton.text = stringFromViewController
}
这是我的 UITableView
:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let customCell = CustomCell()
customCell.stringFromViewController = "Some Text"
self.performSegueWithIdentifier("ViewControllerB", sender: nil)
}
每当我尝试这样做时,string
都会返回为空。我不确定这是否与我试图将此数据传递给 UITableViewCell
而不是包含自定义 cell 的
。我想将数据传递到我的自定义 UITableView
这一事实有关cell
类。
最佳答案
你的做法是错误的。
您的 tableView 在加载 Controller B 时自动重新加载。
您应该将数据传递给 tableView:CellForRow:
方法中的单元格。
您也可以在从 Controller A 分配值后调用 tableView.reloadData()。
这是一个例子:
class ControllerB {
var tableView: UITableView! //IBOutlet?
var stringFromA: String? {
didSet {
self.tableView.reloadData()
}
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("UITableViewCell")
cell.stringFromA = self.stringFromA
return cell
}
关于ios - 将数据传递给自定义 UITableViewCell 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37674019/