Advantages, problems, examples of adding another UIWindow to an iOS app?
Solution 1:
Starting with Rob's answer I played around a bit and would like to write down some notes for others trying to get information on this topic:
- It is not a problem at all to add another
UIWindow
. Just create one andmakeKeyAndVisible
. Done. - Remove it by making another window visible, then release the one you don't need anymore.
- The window that is "key" receives all the keyboard input.
-
UIWindow
covers everything, even modals, popovers, etc. Brilliant! -
UIWindow
is always portrait implicitly. It does no rotate. You'll have to add a controller as the new window's root controller and let that handle rotation. (Just like the main window) - The window's level determines how "high" it gets displayed. Set it to
UIWindowLevelStatusBar
to have it cover everything. Set itshidden
property to NO. - A 2nd
UIWindow
can be used to bring views on the screen that float on top of everything. Without creating a dummy controller just to embed that in aUIPopoverController
. - It can be especially useful on iPhone where there is no popover controller but where you might want to mimic something like it.
- And yes, it solved of course my problem: if the app resigns activation, add a cover window over whatever is currently shown to prevent iOS from taking a screenshot of your app's current content.
Solution 2:
A UIWindow
can float above other UI elements like the system keyboard.
To address your last paragraph: Make a UIWindow
with the same frame as your main window. Set its windowLevel
property to UIWindowLevelStatusBar
. Set its hidden
property to NO
.