2016-12-23 13 views
0

Привет, я пытаюсь добавить UITableview внутри UITableViewCell. Я подключен внешний Tableview ячейка к контроллеру вида и внутренней Tableview (внутри клетки) к классу пользовательских клеток и сделать следующий кодload tableview внутри uitableviewcell swift

//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 в фатальных ошибках пользовательского класса клеток:

unexpectedly found nil while unwrapping a optional value occurs.

Я проверил соединение на выходе, и он подключен к классу пользовательских ячеек. Пожалуйста, советы

+0

попробуйте напечатать 'tbl_Items' перед тем называется перезарядка – Tj3n

+0

Проверить выпускной' tbl_Items' подключен правильно. –

+0

@ Tj3n Po tel_Items дает эту (lldb) ро tbl_Items фатальной ошибке: неожиданно нашел ноль в то время как разворачивание необязательному значению фатальной ошибки: неожиданно обнаружил ноль, а разворачивание необязательного значения выражения производится ошибка: выполнение было прервано, причина: EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0). Процесс был возвращен государству до оценки выражения. – Mohanraj

ответ

1

Вместо создания нового экземпляра с помощью OrderHistoryTableViewCell() вам нужно использовать повторно использовать ячейку, которую вы создали с помощью dequeueReusableCellWithIdentifier, поэтому удалить строку let vc = OrderHistoryTableViewCell() и вызвать метод tableview_reload на cell.

cell.tableview_reload(ordersArray[indexPath.row]as! NSMutableDictionary) 
return cell 
+2

Это правильно ... я даже не понимаю, почему он уже Dequeue, но до сих пор создать новый экземпляр клетки .... бессловесных – Tj3n

+0

Большое спасибо dudes .. его моя ошибка ... – Mohanraj

+0

@Mohanraj Приветственный помощник :) –

 Смежные вопросы

  • Нет связанных вопросов^_^