2010-08-03 27 views
1

UIWebViewDelegate를 응용 프로그램에 구현하려고하는데 실제로 정상적으로 작동하지 않습니다. 이것에 대한 두 번째 시각을 정말 고맙게 생각합니다.UIWebViewDelegate를 사용할 수 없습니다.

MapViewController라는 이름이 혼란 스럽지만 WebView가지도 (UIMapView 아님)를 제어하고 있습니다. 어떤 도움

- (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]; 
} 

감사

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 :

여기에 코드의 대부분입니다!

+0

죄송합니다. 명확한 설명 : 웹보기는 웹 페이지를 잘로드합니다. 내가 원하는 건 webView : shouldStartLoadWithRequest : navigationType을 사용하여 JavaScript에서 Objective-C로 인수를 전달하는 것이다. – Daniel

답변

4

로드하는 초기 페이지가 실제로 표시 되나요? Interface Builder에서 웹보기를 연결 했습니까?

+0

그래, 모든 것이 잘로드됩니다. 내 HTML 파일에는 몇 개의 링크가 있으며 목표 -C를 사용하여 링크를 클릭 할 때 일어나는 일을 처리하려고합니다. – Daniel

+0

대신 코드 대신 IB에서 대리자를 설정할 수 있습니다. 그것이 어떤 차이가 있는지보십시오. –

+0

대리인 클래스에서 UIWebViewDelegate, btw를 구현합니까? –

0

확인 사항 :

  1. 을 map.html 번들에있는 경우. 리소스가 아니라 번들 루트에 놓습니다.
  2. 인 경우 마우스 오른쪽 버튼을 클릭하고 정보 가져 오기를 선택하십시오. 대상에서 파일을 검사하는 경우 대상에서 확인하십시오.
+0

감사합니다. 그러나 분명히해야합니다 : 웹보기는 웹 페이지를 잘로드합니다. 내가 원하는 건 webView : shouldStartLoadWithRequest : navigationType을 사용하여 JavaScript에서 Objective-C로 인수를 전달하는 것이다. – Daniel

2

인터페이스 작성기를 실행하고 위임을 파일 소유자에게 연결하면 작동합니다. 웹보기 개체

  • 드래그 파일 소유자 위에 위임에

    1. 오픈 인터페이스 빌더
    2. 마우스 오른쪽 버튼을 클릭합니다.
  • -1
    - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { 
        NSLog(@"hi"); 
        return YES; // for all supported oreintation. 
    } 
    
    관련 문제