ios - 将数据传递给自定义 UITableViewCell 类

标签 ios swift

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/

相关文章:

iphone - 如何在 iOS 的 post 请求中发送表单数据?

ios - 如何制作一个保持不变的核心数据对象的副本

ios - Swift 中的语音转字符串

xcode - 显示 View 几秒钟(来自 NavController 的自定义推送)

ios - NSAttributedString 未正确显示

ios - 预加载 Sprite 套件纹理

ios - 你如何创建一个新的 AVAsset 视频,它只包含来自另一个视频的给定 `CMTimeRange` s 的帧?

iphone - 隐藏 UIButton 标题

objective-c - 同一 UIButton 的多个实例?

ios - 在应用程序设置中创建