сделайте вашу модель такой
struct ModelName{
var name: String
var rectangle: Bool
}
тогда вы массив, который выбранных элементов будет выглядеть так
var selectedItems = [ModelName]()
затем в viewdidload или в любом месте, где вы пытаетесь инициализировать данные, вы можете сделать это
selectedItems.apped(ModelName(name: "name", rectangle: false)
selectedItems.apped(ModelName(name: "new", rectangle: true)
selectedItems.apped(ModelName(name: "newname", rectangle: false)
selectedItems.apped(ModelName(name: "namename", rectangle: false)
и т.д.
тогда для cellforrow сделайте это
let item = selectedItems[indexPath.item]
cell.textlabel.text = item.name
if item.rectangle == true{
cell.rectButton.setImage(UIImage(named: "rectangle", for: .normal)
}else{
cell.rectButton.setImage(nil, for: .normal)}
return cell
Я пытался с помощью только имени и прямоугольника, вы можете делать все, что вы хотите, если вы не хотите инициализировать каким-либо значением, сделать эту переменную nil