我正在尝试在界面构建器中创建一个自定义tableview单元格并在swift中创建的tableview中使用它,控制器中持有tableview的相关代码就像休闲一样:
class SearchesMainViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var contentTableView: UITableView?
override func viewDidLoad(){
super.viewDidLoad()
self.navigationItem.title = "Search"
self.contentTableView?.registerNib(UINib(nibName: "SingleSearchTableViewCell", bundle: nil), forCellReuseIdentifier: SingleSearchTableViewCellController.reuseID())
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
var cell = tableView.dequeueReusableCellWithIdentifier(SingleSearchTableViewCellController.reuseID(), forIndexPath: indexPath) as SingleSearchTableViewCellController
return cell
}
Cell本身非常简单,有4个标签和一个自定义类:
class SingleSearchTableViewCellController:UITableViewCell {
@IBOutlet var dateMonthLable : UILabel?
@IBOutlet var dateDayLable : UILabel?
@IBOutlet var yearLable : UILabel?
@IBOutlet var makeModelLable : UILabel?
var search : Search
class func reuseID() -> String{
return "SingleSearchTableViewCellType"
}
override init(style: UITableViewCellStyle, reuseIdentifier: String!) {
search = Search()
super.init(style: style, reuseIdentifier: reuseIdentifier)
}
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
required init(coder aDecoder: NSCoder) {
search = Search()
super.init()
}
init(previousSearch s : Search){
search = s
super.init()
}
override init(frame: CGRect) {
search = Search()
super.init(frame: frame)
}
如果我没有提供足够的数据,请随时提出,我们提前感谢您的帮助。有关swift与xib交互的信息似乎尚未广泛应用。
修改 我删除了我的自定义类,我的单元格的绑定看起来像这样: 进行这些更改后,错误读作休闲: 由于未捕获的异常终止应用程序' NSUnknownKeyException',原因:' [setValue:forUndefinedKey:]:此类不是密钥dateDable的密钥值编码兼容。'
现在看起来它试图将我的视图绑定到一些不是我的customUITableViewCellController的视图
答案 0 :(得分:0)
当我遇到这些问题时,通常是由两件事引起的。一个是xib文件中的主view
是UIView
而不是UITableViewCell
。另一个是自定义类字段未设置为您的自定义类。
答案 1 :(得分:0)