iOS Swift: панель Material Snackbar отображается за дочерним всплывающим окном

Я пытаюсь использовать материальную закусочную. Все работает нормально, если всплывающее сообщение закусочной панели отображается непосредственно на контроллере представления. Однако, когда дочернее всплывающее представление добавляется к представлению (view.addSubView), и всплывающее окно запускается из контроллера дочернего всплывающего окна, всплывающее сообщение скрывается, т. Е. Отображается за всплывающим представлением (всплывающее окно можно увидеть после закрытия дочернее всплывающее окно)

Кто-нибудь сталкивался с этой проблемой? Как сделать так, чтобы тост с закусками всегда был виден независимо от того, откуда он был запущен?

1 ответ

Я понял. Магия заключалась в использовании MDCSnackbarManager.setPresentationHostView. Я специально установил окно как presentationHostView.

if let appDelegate = UIApplication.shared.delegate as? AppDelegate, let window = appDelegate.window {
    MDCSnackbarManager.setPresentationHostView(window)
}

Согласно документации, если библиотеке не удается определить объект presentationHostView, как задумано, мы можем его специально установить.

Другие вопросы по тегам