2010-08-03 2 views
1

Я пытаюсь реализовать UIWebViewDelegate в своем приложении, и я не могу на всю жизнь заставить его работать. Я бы очень признателен за второй взгляд на это.Я не могу заставить 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]; 
} 

Спасибо за любую помощь!

+0

Извините, для уточнения: веб-страница загружает веб-страницу просто отлично. Я хочу использовать webView: shouldStartLoadWithRequest: navigationType для передачи аргументов с JavaScript в Objective-C. – Daniel

ответ

4

Действительно ли отображается начальная страница, которую вы загружаете? Вы уверены, что подключили свой веб-просмотр в Interface Builder?

+0

Да, все просто отлично. В моем файле HTML есть несколько ссылок, и я хочу использовать object-C для обработки того, что происходит при нажатии ссылок. – Daniel

+0

Вы можете попробовать установить делегат в IB вместо кода. Посмотрите, не имеет значения. –

+0

Использует ли ваш класс делегатов UIWebViewDelegate, кстати? –

0

Вещи, чтобы проверить:

  1. если map.html находится в пачке. Поместите его в корень пакета, а не на ресурсы.
  2. если есть, щелкните правой кнопкой мыши по нему и выберите «Получить информацию». Проверьте в TARGETS, если цель проверена для файла.
+0

Спасибо, но я должен был уточнить: Веб-просмотр загружает веб-страницу просто отлично. Я хочу использовать webView: shouldStartLoadWithRequest: navigationType для передачи аргументов с JavaScript в Objective-C. – Daniel

2

перейти интерфейс строитель, подключить делегат к владельцу файла, то он должен работать.

  1. Open Interface Builder
  2. правой кнопкой мыши на веб-View объекта
  3. Перетащите делегатом на владельца файлов.
-1
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { 
    NSLog(@"hi"); 
    return YES; // for all supported oreintation. 
}