You should be able to subclass NSURLCache
and substitute it for the shared cache used by the UIWebView
as described in this Cocoa with Love article: Substituting local data for remote UIWebView requests
For another approach have a look at Drop-in offline caching for UIWebView (and NSURLProtocol).