我无法让UIWebViewDelegate工作

时间:2010-08-03 16:37:42

标签: iphone objective-c uiwebview

我正在尝试在我的应用程序中实现一个UIWebViewDelegate,但我无法让它在我的生活中得到它的工作。我真的很感激第二眼看到这一点。

我知道MapViewController的名称令人困惑,但WebView正在控制地图(而不是UIMapView)。

以下是大部分代码:

MapViewController.h

#import <UIKit/UIKit.h>
#import <UIKit/UIWebView.h>

@interface MapViewController : UIViewController<UIWebViewDelegate> {
    IBOutlet UIWebView *webView;
}

@property (nonatomic, retain) IBOutlet UIWebView *webView;

@end

MapViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];
    webView.delegate = self;
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"map" ofType:@"html"]isDirectory:NO]];
    [webView loadRequest:request];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView{
    NSLog(@"Done loading.");
}
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
    NSLog(@"hi");
    return NO;
}
- (void)dealloc {
    webView.delegate = nil;
    [webView release]
    [super dealloc];
}

感谢您的帮助!

4 个答案:

答案 0 :(得分:4)

您正在加载的初始页面是否实际显示?您确定在Interface Builder中连接了您的webview吗?

答案 1 :(得分:2)

转到界面构建器,将委托连接到文件的所有者,然后它应该可以工作。

  1. 打开Interface Builder
  2. 右键单击Web View对象
  3. 将代理拖到文件所有者身上。

答案 2 :(得分:0)

要检查的事项:

  1. 如果map.html在捆绑中。把它放在捆绑的根目录上,而不是放在资源上。
  2. 如果是,请右键单击它,然后选择获取信息。在TARGETS上验证是否检查了目标文件。

答案 3 :(得分:-1)

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
    NSLog(@"hi");
    return YES; // for all supported oreintation.
}