На самом деле, первый ответ был верный, хотя и без конкретики.
Обращаться к ячейке нужно через табличные методы. Т.е. данные можете менять где угодно, потом их подставляете в метод где ячейка создается и перезагружаете либо таблицу целиком либо какие то специфические ячейки. Пример.
class MaxTable:UITableViewController
{
var labelText:String = ""
override func viewDidLoad()
{
super.viewDidLoad()
labelText = "Text"
}
func renameLabel()
{
labelText = "New Text"
// Перезагружаем все таблицу
self.tableView.reloadData()
// Либо перезагружаем первую ячейку-можно добавить несколько
let pathsArray = [IndexPath(item: 0, section: 0)]
self.tableView.reloadRows(at: pathsArray, with: UITableViewRowAnimation.none)
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
cell.label.text = labelText
return cell
}
Естественно, методы которые делают reload, должны быть в главном потоке.