Выберите ячейки в viewdidload в UITableView на основе String Array (Swift)

69
6

Как я могу выбрать ячейку multiples в UITableview в зависимости от значения строки String в Core Data Array?

Я сохранил предыдущие выбранные строки (As String), но теперь, когда я снова загружаю таблицу, я хочу, чтобы все было выбрано снова. Я не могу найти или придумать какое-либо решение для этого.

Массив:

 var category:[String] = ["News", "Sport", "Weather", "Earth", "Future", "Shop", "TV", "Radio", "Food", "Music", "Travel", "Local", "Nature", "Venue", "Money"]

Я пытаюсь выяснить selectRowAtIndexPath но я не видел его в Swift.

Вот как я беру данные из основных данных

func fetchData(){
let entityDescription = NSEntityDescription.entityForName("UserSettings", inManagedObjectContext: Context!)
let request = NSFetchRequest()
request.entity = entityDescription
var dataObjects: [AnyObject]?
do {
dataObjects = try Context?.executeFetchRequest(request)
} catch let error as NSError {
print(error)
dataObjects = nil
}

//CAN I UPDATE THE TABLE SELECTION FROM THE FETCH?
for result in dataObjects as! [NSManagedObject] {
print(result.valueForKey("favCategory")!)

}
}

ОБНОВЛЕНИЕ Как я могу получить это, чтобы выбрать базу на строке, хранящейся в Core Data (Multiple Selection on Viewdidload)

 let rowToSelect:NSIndexPath = NSIndexPath(forRow: 0, inSection: 0);  //slecting 0th row with 0th section
self.tableView.selectRowAtIndexPath(rowToSelect, animated: true, scrollPosition: UITableViewScrollPosition.None);

спросил(а) 2015-06-13T03:20:00+03:00 5 лет, 3 месяца назад
1
Решение
70

Вы не можете выбирать ячейки в viewDidLoad потому что tableView еще не загружен в viewDidLoad. Вы должны сохранить переменную bool в качестве флага в вашем источнике данных, а затем обновить метод cellForRowAtIndexPath: как:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! YourCustomCell

let object = self.dataObjects[indexPath.row] as! YourObject
cell.selected = object.isSelected

return cell
}

ответил(а) 2015-06-13T06:36:00+03:00 5 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема