Как получить tableview [раздел] вне методов tableview? - PullRequest
0 голосов
/ 06 октября 2018

У меня есть календарь представления коллекции с DidSelectMethod, и в этом методе я хотел бы проверить, является ли выбранная дата == для любой из дат в табличном представлении (даты являются заголовками табличного представления) также в том же представленииконтроллер, а затем выделите эту дату в виде таблицы.

Мне нужна помощь, чтобы обдумать логику этого.Прямо сейчас я думаю, что мне нужно каким-то образом получить [section] tableview вне методов tableview, но я не думаю, что это правильный способ сделать это.

Вот что я пытаюсь до сих пор:

Коллекция Просмотр метода DidSelect календаря:

func calendar(_ calendar: JTAppleCalendarView, didSelectDate date: Date, cell: JTAppleCell?, cellState: CellState) {
    configureCalendarCell(cell: cell, cellState: cellState)
    cell?.bounce()
    selectedDate = date

// Check if selectedDate is == to any dates in the tableview 

// First, get the dates from TableView's Data Source. 
// The [datesFromCalendarXML] also make up the Headers of each section in TableView
let datesFromCalendarXML = allEventsInVisibleMonth.map {$0.eventdate}

// Reformat selectedDate from collectionView Calendar to String
let selectedDateToString = formatter.string(from: selectedDate!)

// See if the selected date matches any of the tableview dates
if datesFromCalendarXML.contains(selectedDateToString) {

    // set up tableView's scrollToRow
    // get [section] Int of the datesFromCalendarXML that matches
    // Can I get [section] outside of of tableview?
    let sectionOfDate = 

     let indexPath = IndexPath(row: 0 , section: sectionOfDate)
      self.tableView.scrollToRow(at: indexPath, at: UITableView.ScrollPosition.top, animated: true)

} else {}

Ищите подсказку, как это сделать.

1 Ответ

0 голосов
/ 09 октября 2018

Вот как это работает, если кто-то еще ищет.

Я использовал .index (of: _), чтобы получить индекс selectedDate в моем массиве allEventsInVisibleMonth, а затем использовал этот индекс дляindexPath scrollToRow: IndexPath.

let datesFromCalendarXML = allEventsInVisibleMonth.map {$0.eventdate}
    let selectedDateToString = formatter.string(from: selectedDate!)
    if let index = datesFromCalendarXML.index(of: selectedDateToString) {
        let indexPath = IndexPath(row: 0 , section: index)
        self.tableView.scrollToRow(at: indexPath, at:
        UITableView.ScrollPosition.top, animated: true)
    }
...