使用UIWebView的方式无法执行代理方法,为什么无法执行呢?我也不知道,项目太赶,没有时间去研究,但是后来使用代码的方式解决了。
1.新建一个UIViewController subclass
2.h
UIViewController<UIWebViewDelegate>
{
UIActivityIndicatorView *activityIndicator;
UIWebView *webViewForCUD;
}
@property (nonatomic, retain) IBOutlet UIWebView *webViewForCUD;
3.m
-(void)loadView
{
[super loadView];
self.navigationItem.title = NSLocalizedString(@"常用资料", nil);
webViewForCUD = [[ UIWebView alloc] initWithFrame: CGRectMake(0,0,320,372 )];
[ webViewForCUD setUserInteractionEnabled: YES ]; //是否支持交互
[ webViewForCUD setDelegate: self ]; //委托
//[ webViewForCUD setOpaque: NO ]; //透明,背景变成灰色的
[ self . view addSubview : webViewForCUD]; //加载到自己的view
NSURL *url;
url = [[ NSURL alloc] initWithString:@"http://58.23.127.103:8080/fxt/water.do?method=list"];
[ webViewForCUD loadRequest:[ NSURLRequest requestWithURL: url ]]; //笔者习惯采用loadRequest方式,你可以采用其他方式
activityIndicator = [[ UIActivityIndicatorView alloc] initWithFrame: CGRectMake( 10 , 10 , 20 , 20 )];//需要在.h文件中进行声明
[ activityIndicator setCenter : webViewForCUD. center ];//位置
[ activityIndicator setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleGray]; //颜色根据不同的界面自己调整
[ self . view addSubview : activityIndicator];
}
- (void )webViewDidFinishLoad:(UIWebView *)webView
{
[activityIndicator stopAnimating];
NSLog(@"webViewDidFinishLoad ok??");
}
- (void )webViewDidStartLoad:(UIWebView *)webView
{
[ activityIndicator startAnimating ];
NSLog(@"webViewDidStartLoad ok??");
}