Swift: IBoutlets sind in Custom Cell @ gleich Nu

Ich kann nicht herausfinden, warum diese benutzerdefinierte Zelle nicht ausgegeben wird.

Ich habe eine benutzerdefinierte Zelle in einem Storyboard eingerichtet (keine Schreibfeder). Ich habe ein Textfeld und 2 Beschriftungen, die null sind, wenn ich versuche, in der benutzerdefinierten Zellklasse darauf zuzugreifen. Ich bin mir fast sicher, dass ich alles richtig angeschlossen habe, aber immer noch null.

Ich habe meine Tabellenzelle im Storyboard ausgewählt und die benutzerdefinierte Klasse auf @ gesetzTimesheetTableViewCell Ich habe auch auf die Tabelle geklickt und die Datenquelle und den Delegaten auf @ gesetzTimesheetViewController

Meine benutzerdefinierte Zellklasse:

import UIKit

class TimesheetTableViewCell: UITableViewCell {

@IBOutlet var duration: UITextField!
@IBOutlet var taskName: UILabel!
@IBOutlet var taskNotes: UILabel!

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

override init?(style: UITableViewCellStyle, reuseIdentifier: String!) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)
    println("Cell's initialised")// I see this
    println(reuseIdentifier)// prints TimesheetCell
}


override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
}

func setCell(duration: String, taskName: String, taskNotes: String){
    println("setCell called")
    self.duration?.text = duration
    self.taskName?.text = taskName
    self.taskNotes?.text = taskNotes
}

Meine Steuerung:

class TimesheetViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{

@IBOutlet var timesheetTable: UITableView!

var items = ["Item 1", "Item2", "Item3", "Item4"]

override func viewDidLoad() {
    super.viewDidLoad()
    self.timesheetTable.registerClass(TimesheetTableViewCell.self, forCellReuseIdentifier: "TimesheetCell")

}
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("TimesheetCell", forIndexPath: indexPath) as TimesheetTableViewCell
        println(items[indexPath.row]) // prints corresponding item
        println(cell.duration?.text) // prints nil
        cell.setCell(items[indexPath.row], taskName: items[indexPath.row], taskNotes: items[indexPath.row])
        return cell
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage