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

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

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


person Vidyadhar Lonarmath    schedule 16.09.2020    source источник
comment
Пожалуйста, опубликуйте свой код, чтобы кто-то мог просмотреть его на наличие ошибок/скопировать и вставить для тестирования и т. д.   -  person DPrice    schedule 16.09.2020


Ответы (1)


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

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

В соответствии с документацией, если библиотека не может правильно определить презентациюHostView, мы можем специально установить ее.

person Vidyadhar Lonarmath    schedule 16.09.2020