【问题标题】:Open Button Link In Webview在 Webview 中打开按钮链接
【发布时间】:2017-08-10 15:11:08
【问题描述】:

我对 Xcode 很陌生,对它了解不多,抱歉我的愚蠢问题。

我想在主页上创建带有 20 个按钮的应用程序,我想将它们全部附加到一个 ViewController 中

Like if button1 clicked
do this
elseif button2 clicked
do diffrent

我在 google 和 yahoo.com 上添加了 2 个按钮 但是当我点击它时,它会在同一个 ViewController 中打开,我想在 Feed(ViewController2)中打开它

这是我的应用程序的屏幕截图 Lovebook

LoveBook 附加到 ViewController1 和 feed 附加到 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)

}

请帮助我或将项目演示发送给我。请多谢

【问题讨论】:

  • 拥有 20 个具有相同 IBAction 方法但 URL 不同的按钮是一种“代码味道”。任何时候你有很多这样的重复代码,这表明你应该考虑一个更好的方法来做到这一点。在这种情况下,您可以创建一个 UIButton 的子类,该子类具有 URL 字符串的 @IBInspectable 属性,并且所有按钮都指向同一个 IBAction。然后您可以在情节提要中设置 URL。
  • 或者使用标签。 :D..

标签: ios swift xcode webview


【解决方案1】:

您编写的代码要求外部应用处理 URL。

如果你想打开一个 web 视图,那么你需要创建一个包含 web 视图的新视图控制器,将 URL 传递给该视图控制器,并让视图控制器将链接发送到它的 web 视图viewWillAppear 方法。

(不,我没有可以分享的示例代码。)

【讨论】:

  • 如何传递网址?到新的 ViewController ?
  • 设置您的目标视图控制器(托管 Web 视图的控制器)以具有 targetURL 属性。在 IBAction 代码中,实例化视图控制器并将其 targetURL 设置为所需的 URL,然后再推送/呈现新的视图控制器。
  • 我已经在 viewcontroller 中有 webview,但是当我点击按钮时,它会在托管按钮的同一个 ViewController 上打开
猜你喜欢
  • 1970-01-01
  • 2021-11-22
  • 2012-05-08
  • 2016-03-19
  • 2021-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多