Найти вид сверху в iOS
Я хочу создать загрузочную страницу представления, чтобы поместить поверх всех представлений на экране. Я использую следующий код, чтобы получить представление rootViewController:
UIApplication.sharedApplication.keyWindow.rootViewController.view
Я создаю свою страницу просмотра и добавляю ее как подпредставление в представление rootViewController. Моя проблема в том, что когда я делаю это, если rootViewController изменяется, моя страница загрузки будет идти за представлением нового viewController. Например, я вызываю функцию showLoading при отправке http-запроса. Когда ответ возвращается, он меняет viewController и загрузка идет за ним. Есть ли способ поставить мою загрузку сверху независимо от того, что происходит в фоновом режиме?
1 ответ
Вам разрешено создавать как можно больше UIWindows
как ты хочешь. Если вы действительно хотите, чтобы представление всегда было сверху, то лучше всего создать второе UIWindow
и добавь свою иерархию. Тогда независимо от того, что происходит в другом UIWindow
Ваш индикатор загрузки останется сверху.
пример
UIWindow *secondWindow = [[UIWindow alloc] initWithFrame:[[[UIApplication sharedApplication] keyWindow] frame]];
[secondWindow setWindowLevel:UIWindowLevelStatusBar];
[secondWindow makeKeyAndVisible];
UIViewController *aNewViewController = [[UIViewController alloc] initWithFrame:secondWindow.bounds];
[secondWindow setRootViewController:aNewViewController];