Способ обновления previewActionItems после предварительного просмотра контроллера - PullRequest
0 голосов
/ 26 мая 2019

Мой контроллер вида для списка реализует 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?

...