在iOS中查找顶视图

时间:2013-03-19 20:18:34

标签: ios uiview uiviewcontroller loading

我想创建一个加载视图页面,以放在屏幕上的所有视图之上。我使用以下代码来获取rootViewController的视图:

UIApplication.sharedApplication.keyWindow.rootViewController.view

我创建了我的视图页面并将其作为子视图添加到rootViewController的视图中。我的问题是当我这样做时,如果rootViewController发生变化,我的加载页面将会在新的viewController视图后面。例如,我在发送http请求时调用showLoading函数。当响应返回时,它会更改viewController并加载它。有没有办法让我的装载独立于后台发生的事情?

1 个答案:

答案 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];