2017-08-10 96 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上打开 –