Мой контроллер вида для списка реализует UIViewControllerPreviewingDelegate
. Должно отображаться DetailViewController
при принудительном касании со списком UIPreviewActionItem
. Для этого я переопределяю previewActionItems
внутри DetailViewController
. Например:
class DetailViewController: UIViewController {
private var _previewActionItems: [UIPreviewActionItem] = []
override var previewActionItems: [UIPreviewActionItem] {
return _previewActionItems
}
...
override void viewDidLoad() {
super.viewDidLoad()
repository.fetchActionsFromServer { [unowned self] actionItems in
self._previewActionItems = actionItems
}
}
}
Но элементы зависят от ответа сервера, и я выбираю их асинхронно, и если у пользователя плохие сетевые действия, после предварительного просмотра они будут выбраны, а действия будут пустыми.
Я думаю о том, чтобы представить одиночный UIPreviewActionGroup
и установить действие в группе асинхронно, но в нем нет установщика для элементов.
Есть ли способ обновить действия для уже показанных UIViewController
через peek и pop?