2012-01-10 16 views
0

我正在製作iPad瀏覽器,並且出現了一些問題。例如,當我去谷歌,我寫谷歌的方向在textField。問題是,當我改變網頁時,它仍然說http://www.google.com/。這裏是我的代碼:顯示我的應用中頁面的實際URL的問題

-(IBAction)buttonpressed2:(id)sender { 

    url = [NSURL URLWithString:[textField text]]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    [webView loadRequest:request]; 
    [webView isEqual:textField.text]; 
} 

我怎樣才能讓textField顯示,我看現在的頁面,而不是在字段中鍵入的第一個URL?

回答

2

首先,確保當您設置web視圖,您分配UIWebViewDelegateself

然後,實施委託方法:webViewDidFinishLoad,因爲這樣的:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 

    NSURLRequest *currentRequest = [webView request]; 
    NSURL *currentURL = [currentRequest URL]; 

    //This will log the current url 
    NSLog(@"Current URL is %@", currentURL.absoluteString); 

    //Then to display it in the textField 
    textfield.text = currentURL.absoluteString; 
} 

編輯:

委託是一組等待事件發生的特殊方法。當事件發生時,調用適當的方法。上述方法是UIWebView的代表方法之一 - 當webView發生特定事件時,在這種情況下,當該方法被自動調用並且我們可以這樣響應時。爲了設置委託,我們可以進行兩種方法之一:

  1. 如果創建的代碼的web視圖,這是這樣的:

    UIWebView *webView = [[UIWebView alloc] init...] 
    

    那麼所有你需要做的被添加以下代碼行:

    webView.delegate = self; 
    
  2. 但是,您可能也創造了界面生成器的web視圖 - 如果是這樣的話,點擊web視圖和連接選項卡,然後拖動將選項委託給「文件所有者」。

這就是它。

+0

謝謝你們!你幫了我很多,我真的不知道我必須做什麼。我認爲你也應該知道你已經幫助了一個15歲的開發者:) – user1131097 2012-01-10 21:42:51

+0

沒問題。既然答案有幫助,你會不會介意檢查我答案旁邊的綠色箭頭。這給了我一個很好的答案,並指出你提出了一個問題(這也標誌着問題的答案)。如果這是一個很好的答案,你也可以點擊0上方的向上箭頭。 PS。我也是16歲 – Andrew 2012-01-10 23:16:06

+0

另外,請查看raywenderlich.com。他爲初學者寫專業教程給專家。他甚至爲我的高中生 – Andrew 2012-01-10 23:22:02

0

您的班級應實施UIWebViewDelegate協議。然後在方法webView:shouldStartLoadWithRequest:navigationType:你可以這樣做:

[textField setText:[[request URL] absoluteString]]; 

這樣,當你瀏覽到一個新的URL在文本框的值將被更新。

+0

我不能使用這種方法,Xcode不讓我 – user1131097 2012-01-15 20:36:27

相關問題