What is the Best Way to Display a Non-Modal "Loading" Message on IPhone?
<p>I have an iPhone app, and sometimes when the user presses a button, the chosen operation will take a minute or two. I would like to display a message instructing the user to wait, but not block the user from using the app in the meantime. Also I would like customizable text on the message.</p>

<p>Another requirement is that I use a TabBarController as the main navigation control.</p>

<p>My idea is to have a message appear at the top of the screen, pushing the content down by 20 pixels. Note that as there would be multiple screens, this 20 pixel message would have to be independent of any single screen.</p>

<p>I have tried a few different ways, each with drawbacks.</p>

<p>1 - Have a Root View and call AddSubView with the TabBarController. Then I can resize the TabBarController and show the message on the Root View underneath. This fails because the TabBarController child views do not receive "ViewDidAppear" messages. Interestingly, if I display a modal window at some later point, the "ViewDidAppear" messages begin to work. But I would like ViewDidAppear at the start.</p>

<p>2 - Similar to #1. Have a Root View and display the TabBarController as a modal view. This allows ViewDidAppear to work, but if the screen is rotated, the rotation message doesn't propogate to the Root View. So I cannot rotate the Root View.</p>

<p>3 - Subclass TabBarController to properly handle rotation. The Apple docs say not to do this, so I worry my app would be rejected, if I can make it work.</p>

<p>4 - Add two views to the main window. One for displaying the message, and one for the app content. This suffers from the same rotation problem as option #2.</p>

<p>Any suggestions are appreciated.
Thanks.</p>
