続いて,UIWebViewをハックしていきます.
HMDTさんと同じようなことができるような実装をしてみました.
※参考リンク
HMDT:プログレスバーを表示する
・コンパイル
まず,WebViewをさわるので,WebView.hをincludeします.
しかし,ちょっといじらないとコンパイルできません.

diff -t ./include.backup112/WebKit/WebFrame.h ./include/WebKit/WebFrame.h
7c7
< #import "NSObject.h"
---
> //#import "NSObject.h"
Only in ./include/WebKit: WebFrame.h~
diff -t ./include.backup112/WebKit/WebView.h ./include/WebKit/WebView.h
7c7
< #import "WAKView.h"
---
> #import <WebCore/WAKView.h> //#import "WAKView.h"
Only in ./include/WebKit: WebView.h~

というように,引っかかってくるエラーに対応します.
さらに,以下のエラーにも対応します.

diff -t ./include.backup112/WebCore/WAKResponder.h ./include/WebCore/WAKResponder.h
7c7
< #import "NSObject.h"
---
> //#import "NSObject.h"
Only in ./include/WebCore: WAKResponder.h~

修正するファイルは,以下となります.
・WebKit/WebView.h
・WebKit/WebFrame.h
・WebCore/WAKResponder.h
さらに,ある構造体の定義ができていないので,適当にどこかで宣言して補います.
(WebCore/CDStructures.hをそのまま使いたいのだが,ちょっとエラーが多すぎて,対応するのがめんどいので場当たりで対応しました.)

struct _WKViewContext {
void *drawCallback;
void *drawUserInfo;
void *eventCallback;
void *eventUserInfo;
void *notificationCallback;
void *notificationUserInfo;
void *layoutCallback;
void *layoutUserInfo;
void *responderCallback;
void *responderUserInfo;
void *hitTestCallback;
void *hitTestUserInfo;
void *willRemoveSubviewCallback;
};

・ソースコード
まず,いくつかのデリゲートメッセージを利用するため,とりあえず,全部Delegateをセット.

// set delegate
id webView = [uiWebView_ webView];
[webView setResourceLoadDelegate:self];
[webView setDownloadDelegate:self];
[webView setFrameLoadDelegate:self];

以下,デリゲートメソッド.
HMDTさんのサイトまんまですが・・・.引用です.
didStartProvisionalLoadForFrameで,インジケータをスタートさせて,リソースのロード終了メッセージのタイミングでインジケータをストップするかを判断するように実装しています.

- (void)webView:(WebView*)sender didStartProvisionalLoadForFrame:(WebFrame*)frame {
if (frame == [sender mainFrame]) {
resourceCount_ = 0;
resourceCompletedCount_ = 0;
resourceFailedCount_ = 0;
[UIApp setStatusBarShowsProgress:YES];
}
}
- (id)webView:(WebView*)sender identifierForInitialRequest:(NSURLRequest*)request fromDataSource:(WebDataSource*)dataSource {
NSNumber*number;
number = [NSNumber numberWithInt:resourceCount_++];
return number;
}
- (void)webView:(WebView*)sender resource:(id)identifier didFailLoadingWithError:(NSError*)error fromDataSource:(WebDataSource*)dataSource {
resourceFailedCount_++;
[self controlSyndicator];
}
- (void)webView:(WebView*)sender resource:(id)identifier didFinishLoadingFromDataSource:(WebDataSource*)dataSource {
resourceCompletedCount_++;
[self controlSyndicator];
}
- (void) controlSyndicator {
int  downloadedCount = resourceCompletedCount_ + resourceFailedCount_;
if( downloadedCount == resourceCount_ ) {
[UIApp setStatusBarShowsProgress:NO];
}
}