Add UIView Above All Other Views, Including StatusBar

I've done some more digging around the API's and believe I've worked it out.

In order to display a view over the entire screen you need to create your own UIWindow and set its windowLevel property to be UIWindowLevelStatusBar. You can then add your custom subviews to this window.

Note that Apple does not encourage, but neither do they prohibit the creation of multiple windows.

UIWindow *statusWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
statusWindow.windowLevel = UIWindowLevelStatusBar;
statusWindow.hidden = NO;
statusWindow.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.7];
[statusWindow makeKeyAndVisible];

When you want to remove the window from the screen it looks as though you release it from memory.

[statusWindow release];

This doesn't feel totally safe, but I don't get any errors and it seems to drop it out of the UIApplication's windows array. Please let me know if this is wrong.

Update:

One other issue I came across was the UIStatusBar not taking touch events to scroll the active UIScrollView to the top after I had displayed and removed this overlay window. The solution was to set the primary window back to the key window once the overlay had been released.

[primaryWindow makeKeyWindow];

I needed to present a view on top of all other views within my main window. Initially, I thought of presenting another window on top of my key window. Since, apple discourages using multiple windows, I decided against it.

The following code did the trick for me:

I added my view as a sub view to my key window which automatically presents my view on top of all other views. In my case this code is in app's delegate

[self.window addSubview:topViewController.view]

And when I am done with the view, the following code removes it from the window.

[topViewController.view removeFromSuperview];

I'm about to do the same thing shortly and found the following

http://www.dejal.com/developer/dsactivityview

Looks like it has everything you're looking for