UILabels in benutzerdefinierten UITableViewCell werden nie initialisiert
Ich habe Probleme beim Erstellen benutzerdefinierter Tabellenzellen mit Xcode6 (Beta 4). Genauer gesagt kann ich nicht auf meine benutzerdefinierten UILabels in der Zelle zugreifen (sie auspacken), da sie nie initialisiert werden.
So habe ich alles eingerichtet:
Ich habe eine Ansicht im Storyboard erstellt, die eine Tabellenansicht mit einer Prototypzelle enthält:
Die Ansicht ist mit einer Klasse MyCoursesTableViewController verbunden, und die Zelle (mit dem Bezeichner courseCell) mit CourseTableViewCell. Ich habe beide Klassen unten eingefügt (nur mit den relevanten Code-Bits):
MyCoursesTableViewController.swift
import UIKit
class MyCoursesTableViewController: NavToggleTableViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.registerClass(CourseTableViewCell.self, forCellReuseIdentifier: "courseCell")
}
override func numberOfSectionsInTableView(tableView: UITableView!) -> Int {
return 1
}
override func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
var cell : CourseTableViewCell = tableView.dequeueReusableCellWithIdentifier("courseCell", forIndexPath: indexPath) as CourseTableViewCell
// cell is not nil
if let titleLabel = cell.titleLabel {
// never gets here
} else {
cell.textLabel.text = "Course Title"
}
return cell
}
}
DasNavToggleTableViewController
class ist nur eine gemeinsame Basisklasse, die ich für alle View-Controller verwende und die das Ergebnis nicht beeinflusst.
CourseTableViewCell.swift
import UIKit
class CourseTableViewCell: UITableViewCell {
@IBOutlet weak var courseIcon: UIImageView!
@IBOutlet weak var teacherIcon: UIImageView!
@IBOutlet weak var studentsCountIcon: UIImageView!
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var studentsCountLabel: UILabel!
@IBOutlet weak var teacherLabel: UILabel!
init(style: UITableViewCellStyle, reuseIdentifier: String!) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
Unten sehen Sie ein Bild davon, wie ich die Zelle im Hilfsprogrammfenster (im Storyboard) konfiguriert habe:
Das Problem entsteht innerhalb der FunktiontableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> CourseTableViewCell
wenn ich auf die UILabels zugreifen möchte. Wenn ich so etwas sagen würdecell.titleLabel.text = "Course Title"
Ich erhalte folgende Fehlermeldung:
fatal error: unexpectedly found nil while unwrapping an Optional value
Wo mache ich was falsch? Würde mich über jede Hilfe freuen, danke!