2017-08-10 125 views
1

我對Xcode非常陌生,不太瞭解它,抱歉我的愚蠢問題。在Webview中打開按鈕鏈接

我想與主頁上的20個按鍵創建應用程序,我想附加它們都在同一個視圖控制器

Like if button1 clicked 
do this 
elseif button2 clicked 
do diffrent 

我增加了2個按鈕與谷歌和yahoo.com 但是當我點擊它下它同樣ViewController中打開我想在飼料中打開它(ViewController2)

這是我的應用程序 Lovebook

的截圖LoveBook連接到ViewController1和飼料連接到viewcontroller2

,這是我在ViewController1

代碼
@IBAction func button1(_ sender: Any) { 

    let url = URL(string:"http://google.com") 



    let request = URLRequest (url: url!) 
    webView.frame = self.view.frame; 

    webView.loadRequest(request) 

} 

@IBAction func button2(_ sender: Any) { 
    let url = URL(string:"http://yahoo.com") 



    let request = URLRequest (url: url!) 
    webView.frame = self.view.frame; 

    webView.loadRequest(request) 

} 

請幫我或給我的項目演示。請謝謝

+0

有20個按鍵具有相同IBAction爲方法,但不同的URL是一個「代碼味道」。任何時候你都有許多重複的代碼,這表明你應該考慮一個更好的方法來做到這一點。在這種情況下,您可以創建UIButton的子類,該子類具有URL字符串的@IBInspectable屬性,並使所有按鈕指向相同的IBAction。然後,您可以在故事板中設置網址。 –

+0

或使用標籤。 :D .. – GeneCode

回答

1

您編寫的代碼要求外部應用程序處理URL。

如果你想打開一個web視圖,那麼你需要創建一個新的視圖控制器,其中包含一個web視圖,將URL傳遞給該視圖控制器,並讓視圖控制器發送鏈接到web視圖它的方法是viewWillAppear

(不,我沒有示例代碼,我可以分享。)

+0

我該如何傳遞網址?到新的ViewController? –

+0

設置您的目標視圖控制器(承載Web視圖的控制器)以具有'targetURL'屬性。在IBAction代碼中,實例化視圖控制器,並在推送/呈現新的視圖控制器之前將其targetURL設置爲所需的URL。 –

+0

我已經在viewcontroller中有webview,但是當我點擊按鈕時,它會在託管按鈕的同一個ViewController上打開 –