2015-11-03 6 views
1

У меня есть classVC, UIViewcontroller, содержащий UITableView и некоторые другие вещи.Обновить UITableView от контроллера

У меня classTVC является UITableViewController.

В classVC в Instantiate var TVC = classTVC()

Тогда я программно установить делегат и источник данных моего UITableView в TVC.

Проблема:

В контроллере TVC я объявляю следующий метод:

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? { 
    let delete = UITableViewRowAction(style: .Destructive, title: "Delete") { (action, indexPath) in 
     // delete item at indexPath 
    } 
    let share = UITableViewRowAction(style: .Normal, title: "Disable") { (action, indexPath) in 
     // share item at indexPath 
    } 

    share.backgroundColor = UIColor.blueColor() 

    return [delete, share] 
} 

Как перезагрузить UITableView после share или delete действий была выполнена? Это произойдет в UITableViewController, так что я не могу назвать .reloadData()

Я уже пытался получить parentViewController и т.д., но это выглядит грязным

ответ

1

просто захватить Tableview в блоках и вызвать reloadData

override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? { 
let delete = UITableViewRowAction(style: .Destructive, title: "Delete") { (action, indexPath) in 
    // delete item at indexPath 
    ... 
    tableView.reloadData() 
} 
    let share = UITableViewRowAction(style: .Normal, title: "Disable") { (action, indexPath) in 
    // share item at indexPath 
    ... 
    tableView.reloadData() 
} 
+0

Как я мог бы пропустить это ... Я пойду получше, спасибо –

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