UIDocument Открытие для заполнения TableView - PullRequest
0 голосов
/ 27 августа 2018

Я использую DocumentBrowserViewController в Swift для представления документов в ViewController. В ViewController у меня есть tableView для представления некоторых данных в документе. Когда ViewController представлен, он хочет сначала инициализировать tableView. Настройки tableView (например: func TableView: nbrOfRowsInSection) задаются данными в документе. Поскольку документ еще не прочитан, происходит сбой.

У меня есть document.open в ViewWillAppear, который, я думал, будет выполнен первым.

Есть ли способ изменить этот порядок?

1 Ответ

0 голосов
/ 27 августа 2018

Метод viewWillAppear не выполняется первым, первый - viewDidLoad. В зависимости от того, как вы инициализируете свой ViewController, он также может быть awakeFromNib.

Но это все равно не должно провалиться, просто сделайте что-то похожее на это:

var dataFromDocument: SomeData {
    didSet {
       tableView.reloadData()
    }
}

final public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return dataFromDocument.size
}

Затем вы можете прочитать данные и установить dataFromDocument, когда чтение документа закончится.

...