我有一个我设计的自定义单元格。
我想将字符串传递给该自定义单元格。我创建了一个名为AlarmCell(UITableCell的子类)的可可触摸类,然后使用此代码调用它(在我的UIViewController类中):
let myCell = AlarmCell()
然后从AlarmCell中调用UILabel。
myCell.timeLabel?.text = newAlarm
newAlarm有字符串" 08:38 PM"
为什么myCell.timelabel会以nil的形式出现?我做错了什么?
编辑:
AlarmCell类:
class AlarmCell: UITableViewCell {
@IBOutlet var timeLabel: UILabel!
}
警报(UIViewController类):
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let Cell = tableView.dequeueReusableCellWithIdentifier("alarmCell", forIndexPath: indexPath) as UITableViewCell
我有:
cell.textLabel?.text = alarms[indexPath.row]
但是我需要将一个字符串传递给单元格内的自定义labl
答案 0 :(得分:1)
帮自己一个忙,并创建一个与您的AlarmCell.swift类相关联的 nib 文件。自定义nib文件中的单元格后,在 viewDidLoad 函数中声明以下内容。
var nib = UINib(nibName: "AlarmCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "cell")
然后,在 cellForRowAtIndexPath 函数中提及它:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:AlarmCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as AlarmCell
cell.timeLabel.text = alarms[indexPath.row]
return cell
}
答案 1 :(得分:0)
尝试将cell.textLabel?.text = alarms[indexPath.row]
更改为
Cell.timeLabel?.text = NSString(format: "%@", alarms[indexPath.row])
您应该更改用于在let
方法中声明Cell
对象的func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
关键字,如下所示:
var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("alarmCell") as UITableViewCell alarmCell
答案 2 :(得分:0)
将单元格定义为
var cell: AlarmCell = self.tableView.dequeueReusableCellWithIdentifier("alarmCell") as UITableViewCell AlarmCell
然后将setTextLabel(或自定义标签)文本设为
cell.textLabel?.text = alarms[indexPath.row] as NSString
下面的评论,如果任何查询,这对我来说非常适合我