2011-12-02 51 views
0

我在其中一個程序中使用shouldStartLoadWithRequest非常成功,但整個項目是一個概念證明和骯髒,我重新開始一個新項目。webView shouldStartLoadWithRequest在一個程序中工作,但無法在另一個程序中工作

但是shouldStartLoadWithReqest不再爲我調用,但我不能看到兩個項目之間的重要區別在哪裏(然而,一個不同之處在於第一個是使用.nibs,第二個我不使用它們) 。

得到的東西開始我使用的是控制器與UIWebView中的視圖:

@interface IMSRootController : UIViewController <UIWebViewDelegate> { 

    UIWebView* webView; 
} 

(webView的聲明爲@property和@synthesized)

- (void)loadView { 
    [super loadView]; 
    webView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    self.view = webView; 
    [webView release]; } 


- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [[self navigationController] setNavigationBarHidden:YES animated:NO]; 
    [self displayPage]; } 

-(void) displayPage { ... [webView loadHTMLString:self.htmlString baseURL:baseURL]; } 


- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
... 

有什麼不對?

感謝

回答

2

你的對象沒有被設置爲UIWebView對象的委託,因此您將不會收到任何代表的消息。在某些時候,無論是在loadView甚至displayPage(但調用loadHTMLString:baseURL:之前),這樣做:

webView.delegate = self; 
+0

我有類似的問題,我已經設置委託和方法webViewDidFinishLoad和webViewDidStartLoad被稱爲但是shouldStartLoadWithRequest沒有按當我點擊一個鏈接時不會打電話? – Bear

+0

如果你正在調用'webViewDidStartLoad'和'webViewDidFinishLoad',那麼你應該**也調用'webView:shouldStartLoadWithRequest:navigationType:'。仔細檢查你的委託方法實現是否正確定義(' - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType') – gschandler

+0

這是問題,儘管我的方法被錯誤地定義從定義複製。我沒有想到它可能是如此簡單。歡呼聲 – Bear

相關問題