У меня есть структура, которая на основе действий пользователя показывает предупреждающие сообщения, добавляя веб-вид сверху текущего вида сверху. До iOS 13 и поддержки нескольких сцен я использую для получения вида сверху, используя следующий код
UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;
while (topController.presentedViewController) {
topController = topController.presentedViewController;
}
, а затем добавляю веб-представление поверх него. Но теперь, поскольку iPad может иметь несколько сцен, приведенный выше код всегда отображает только последнюю созданную сцену в качестве вида сверху. Будучи фреймворком, я хотел дать приложению свободу решать, на какой сцене он хотел бы показать сообщение, идентифицируя сцену, которая выполняла это действие, или отслеживая, какая сцена выполняла последнее действие в фреймворке.
В основном L oop через все сцены в активном состоянии переднего плана и совпадает с некоторым идентификатором, чтобы определить, к какому веб-просмотру сцены следует добавить.
Любая помощь будет оценена.