У меня есть переменная для хранения объектов пользовательского класса, которые я загрузил в UITableView.Swift: Clear UITableView Cells
Я даю пользователю возможность очистить все. Когда это выполняется, я очищаю массив, в котором хранятся все игроки, но как очистить TableView?
Я пробовал tableView.reloadData(), но ничего не делает.
пользовательского класса & глобальной переменной:
var players: [AnyObject] = []
Class Player{
var playerName: String?
init(name:String){
playerName = name
}
}
Пользовательские Cell cellForRowAtIndexPath:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: CustomMainCell = tableView.dequeueReusableCellWithIdentifier("CustomMainCell") as CustomMainCell
// Get Player
let thisPlayer:Player = players[indexPath.row] as Player
cell.nameLabel?.text = thisPlayer.playerName
}
return cell
}
Настройки Clear Функция:
alertController.addAction(UIAlertAction(title: "Clear Players?", style: .Default, handler: { (action: UIAlertAction!) in
players.removeAll()
self.tableView.reloadData()
}))
Выполняется ли вызов tableView.reloadData() 'в основном потоке/очереди? –
Перезагрузка данных должна работать, если ваш массив пуст в то время, когда вы его вызываете. Вы должны показать код, который используете. – rdelmar
Измените свой вопрос, чтобы отобразить соответствующий код. Вы также использовали отладчик для выполнения кода и подтверждения, что массив пуст? –