我想创建一个加载视图页面,以放在屏幕上的所有视图之上。我使用以下代码来获取rootViewController的视图:
UIApplication.sharedApplication.keyWindow.rootViewController.view
我创建了我的视图页面并将其作为子视图添加到rootViewController的视图中。我的问题是当我这样做时,如果rootViewController发生变化,我的加载页面将会在新的viewController视图后面。例如,我在发送http请求时调用showLoading函数。当响应返回时,它会更改viewController并加载它。有没有办法让我的装载独立于后台发生的事情?
答案 0 :(得分:3)
您可以根据需要创建尽可能多的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];