我试图在一个视图控制器中有2个tableview,其中一个tableview是静态的 另一种动态。
我的视图控制器设置如此
上半部分是静态的tableview。
我为两个tableView创建了ibOutlets,但我似乎无法自定义表。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell2", forIndexPath: indexPath) as UITableViewCell
//tableview2 is the dynamic tableView.
if (tableView == self.tableView2){
print("Tableview2")
}
else{
println("HELLLO")
}
return cell
}
我在 - [UITableView dequeueReusableCellWithIdentifier:forIndexPath:],/ SourceCache / UIKit_Sim / UIKit-3318.16.14 / UITableView.m:6116中收到错误 *断言失败 2014-10-23 22:31:52.246 Recipe app [2857:504809] * 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法使用标识符cell2对单元格出列 - 必须注册一个笔尖或一个标识符的类或连接故事板中的原型单元格。
答案 0 :(得分:1)
正如错误所说,你必须为标识符注册一个笔尖或一个类,或者在故事板中连接一个原型单元"。
在viewDidLoad或awakeFromNib上执行此操作。
self.tableView.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier:"cell2")
或者你必须在故事板中制作原型单元并给它" cell2"标识符
答案 1 :(得分:0)
假设您已为动态表格提供了原型单元格reuseRedentifier" cell2",请移动此行:
let cell = tableView.dequeueReusableCellWithIdentifier("cell2", forIndexPath: indexPath) as UITableViewCell
到if ...
子句或else ...
子句(以动态表为准)。如果tableView是静态表,则会抛出错误。