您好我正在尝试在UITableview
内添加UITableViewCell
。我已将外部tableview单元格连接到视图控制器,将内部tableview(单元格内部)连接到自定义单元格类,并执行以下代码
//cellforrow of the outer tableview:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCellWithIdentifier("HistoryCell")! as! OrderHistoryTableViewCell
print(ordersArray[indexPath.row].valueForKey("items"))
cell.lbl_orderStatus.text = ordersArray[indexPath.row].valueForKey("status") as? String
cell.lbl_time.text = ordersArray[indexPath.row].valueForKey("timestamp") as? String
let vc = OrderHistoryTableViewCell() // Custom cell class
vc.tableview_reload(ordersArray[indexPath.row]as! NSMutableDictionary) //pass value to the tableview inside the cell
return cell
}
//code in the custom cell class
func tableview_reload(dict : NSMutableDictionary){
orderItemsarray.removeAllObjects()
let itemsDict = dict.valueForKey("items") as! NSMutableDictionary
for (_,value) in itemsDict
{
let tempDict = value as! NSMutableDictionary
orderItemsarray.addObject(tempDict)
}
self.tbl_Items.reloadData() // fatal error: unexpectedly found nil while unwrapping an optional value
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return self.orderItemsarray.count;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
var cell : UITableViewCell!
cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell");
cell.textLabel?.text = "test"
return cell
}
传递数据并调用自定义单元类中的func tableview_reload。但是当我尝试在自定义单元类致命错误中重新加载tableview时:
在展开可选值时意外发现nil。
我检查了插座连接,并连接到自定义单元类。请建议
答案 0 :(得分:1)
您需要使用OrderHistoryTableViewCell()
创建的重复使用的单元格,而不是使用dequeueReusableCellWithIdentifier
创建新实例,因此请删除行let vc = OrderHistoryTableViewCell()
并在{{tableview_reload
上调用cell
方法1}}。
cell.tableview_reload(ordersArray[indexPath.row]as! NSMutableDictionary)
return cell