Я пытаюсь получить textLabels всех выбранных строк, но я не знаю, как это сделать, но не получал от этого никакой помощи, поэтому я попытался что-то сделать на моем но я не работаю так, как хочу, я думал, что создание массива и сортировка textLabels выбранных ячеек будут работать для него (да, его работа отлично), но когда я отменю выделение ячейки, я хочу удалить textLabel этой конкретной ячейки из моего массив, если кто-нибудь знает, как сделать это, то пожалуйста скажите мнеОбработка нескольких выбранных строк в UItableView
вот мой код -
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
let cell = tableView.cellForRowAtIndexPath(indexPath)
if (cell?.accessoryType == UITableViewCellAccessoryType.Checkmark){
cell!.accessoryType = UITableViewCellAccessoryType.None;
getTheChannelNames.removeAtIndex(getTheChannelNames.count - 1)
print(getTheChannelNames.count)
print(getTheChannelNames)
}else{
cell!.accessoryType = UITableViewCellAccessoryType.Checkmark;
_ = self.ChannelList[indexPath.row]
if (cell?.accessoryType == UITableViewCellAccessoryType.Checkmark){
getTheChannelNames.append((cell?.textLabel?.text)!)
print(getTheChannelNames.count)
print(getTheChannelNames)
}
}
}
Скорее, сохраняя текст, вы должны просто сохранить набор выбранных строк - текст, который вы легко можете получить из своей модели данных. Вы можете использовать 'NSMutableIndexSet' для хранения состояния выбора – Paulw11
в порядке, поэтому' NSMutablwIndexSet' - это то, что мне нужно для получения нескольких значений? спасибо за ответ :) –
Это хорошая структура данных, используемая для хранения указателей (строк), и вы можете быстро проверить, установлен ли данный индекс в наборе; В 'didSelectRowAtIndexPath' вы можете проверить, уже ли строка в наборе; если он не добавляет его, если он его удаляет. В 'cellForRowAtIndexPath' вы можете проверить набор, чтобы увидеть, нужно ли добавлять или удалять галочку – Paulw11