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, как задумано, мы можем его специально установить.