UIDocument 打开填充 TableView

UIDocument Opening to populate TableView

我在 Swift 中使用 DocumentBrowserViewController 将文档呈现给 ViewController。在 ViewController 我有一个 tableView 来显示文档中的一些数据。当 ViewController 出现时,它想先初始化 tableView。 tableView 的设置(例如:func TableView: nbrOfRowsInSection)由文档中的数据设置。由于文档尚未读取,因此失败。

我在 ViewWillAppear 中有 document.open,我认为它会首先执行。

有没有办法改变这个顺序?

方法viewWillAppear不先执行,第一个是viewDidLoad。根据您初始化 ViewController 的方式,它也可以是 awakeFromNib

但它仍然不应该失败,只需做类似这样的事情:

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

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

然后就可以读取数据,设置dataFromDocument文件读取完成