2012-11-03 54 views
0

我想通過製作一個簡單的應用來學習Xcode。 但我一直在尋找在網絡上的時間(天),我無法弄清楚如何使一個按鈕,在另一個視圖控制器打開一個UIWebView:S按下一個按鈕,然後在另一個ViewController中打開一個URL

首先讓我告訴你一些代碼,我已經準備好:

我有幾個按鈕om我的主要故事板,每個是標題一些國家代碼,如英國,CA和DK。

當我按下這些按鈕之一,我有一個這樣的IBAction爲:

- (IBAction)ButtonPressed:(UIButton *)sender { 
// Google button pressed 

NSURL* allURLS; 

if([sender.titleLabel.text isEqualToString:@"DK"]) { 

    // Create URL obj 

    allURLS = [NSURL URLWithString:@"http://google.dk"]; 



}else if([sender.titleLabel.text isEqualToString:@"US"]) 

{ 

    allURLS = [NSURL URLWithString:@"http://google.com"]; 

}else if([sender.titleLabel.text isEqualToString:@"CA"]) 

{ 

    allURLS = [NSURL URLWithString:@"http://google.ca"]; 

} 
NSURLRequest* req = [NSURLRequest requestWithURL:allURLS]; 

[myWebView loadRequest:req]; 

}

如何讓我的其他的viewController命名myWebView這個開放的UIWebView?

請幫迷路的人:d

+0

不要ü要推到另一個視圖控制呃?是的,然後在該視圖控制器中聲明一個字符串變量並將該URL傳遞給該變量。然後在ViewDidLoad中加載字符串url。 –

+0

@Suresh我該怎麼做呢?,我是Xcode中的一個新的n00b。 – D79

回答

0

嗯,你已經firstViewController已經設計和編碼,現在你已經用在IB它的自我綁定一個UIWebView創建secondViewController,它也有一個二傳手NSString變量一樣strUrl您需要在推送或呈現secondViewController時通過,並將其分配給secondViewController的中的UIWebViewSee my answer about how to pass a NSString?另外UIWebView有其代表方法(What's delegate & datasource methods? - Apple Doc)您可以使用它來處理URL請求。

這些是delegateUIWebView,如果您打算使用它,您需要將UIWebView委託給self

- (void)webViewDidStartLoad:(UIWebView *)webView; 
- (void)webViewDidFinishLoad:(UIWebView *)webView; 
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error; 
+0

你能給我一些完整的例子嗎? – D79

+0

檢查*蘇雷什*答案,他給出了完整的例子! :) – Hemang

0

firstViewController.m

- (IBAction)ButtonPressed:(UIButton *)sender { 
    NSURL* allURLS; 
    //get your URL 
    secondViewControlelr *secondView=[[secondViewControlelr alloc]init]; 
    second.urlToLoad=allURLS; 
    [self.navigationController pushViewController:secondView animated:YES]; 
    } 

secondViewControlelr.h //聲明URL和設置屬性

NSURL *urlToLoad; 

secondViewControlelr.m

- (void)viewDidLoad 
{ 
     myWebView=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 460)]; 
     [self.view addSubview:myWebView]; 
      NSURLRequest *urlReq=[NSURLRequest requestWithURL:self.urlToLoad cachePolicy:NSURLCacheStorageNotAllowed timeoutInterval:10]; 
    [myWebView loadRequest:urlReq]; 

} 
+0

好吧我嘗試了,並編輯我的代碼,但我得到的錯誤(s)second.urltoload = allURLS;錯誤是「使用未聲明的標識符'second' – D79

+0

沒問題,但是我不明白要在我的secondviewcontroller.h文件中輸入什麼內容? – D79

相關問題