I'm doing it in this way using UINavigationController and view controllers. This is the structure I have
Code:
UINavigationController
|
|--UIViewController //root view controller
|
|--UIView // showing activity indicator
|--UITableView // showing table
So here how I code this
1) I'm loading and displaying UINavigationController with a root view controller
2) Asking a web service for data and loading UIView with activity indicator as a root view controller's view
3) Once the data from web service is ready I animate the opacity of the root controller's view to 0.0 and then I'm replacing it with the UITableView ...
I think apple does something similar in App Store and iTunes apps.