Within my application, I have a complete HTML-based manual that I use a UIWebView to display. The HTML, CSS, and images are all stored locally in a Help directory within my application bundle. I simply load the first page using code like the following:
NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Help"];
NSURL *helpURL = [NSURL fileURLWithPath:[path stringByAppendingPathComponent:@"helpintroduction.html"]];
NSURLRequest *URLReq = [NSURLRequest requestWithURL:helpURL];
[webHelpView loadRequest:URLReq];
and everything loads and displays as if it were on a remote server.
To preserve the full directory structure of your HTML, etc. files, simply add those files to your Xcode project, dragging in directories where you can, and add a new Copy Files
build phase. Make the destination Resources
and the path whatever you want to use for the base of your web files (Help in the example above). Finally, drag all of the HTML, etc. resources you added to your project into this Copy Files
build phase so that they end up bundled with your application.
I see no reason why this wouldn't work with more complex web applications, and I've seen no action by Apple against people doing this within their own applications.