Xcode 在另一个 ViewController 中打开 WebView

Posted

技术标签:

【中文标题】Xcode 在另一个 ViewController 中打开 WebView【英文标题】:Xcode Opening a WebView in another ViewController 【发布时间】:2017-01-24 13:32:43 【问题描述】:

我正在尝试制作一个带有启动 web 视图的按钮的应用程序。

我已经学习了许多教程并阅读了有关该主题的不同主题,但我无法使其正常工作:我在测试代码时收到此消息:

    "Cannot call value of non-function type UIWebView!"

这是我到现在为止的步骤

在主视图控制器中添加按钮 创建另一个名为“WebViewController”的视图控制器 添加一个 segue 以将按钮链接到 WebViewController 创建一个新的 Cocoa Touch 类文件 'WebViewController' 使用 WebViewController 类设置 WebViewController 自定义类 在名为“myWebView”的 WebViewController ViewController 中添加 webView

这是 WebViewController 类(我在运行项目时遇到了错误)

  import UIKit

  class WebViewController: UIViewController

  @IBOutlet weak var myWebView: UIWebView!

  override func viewDidLoad() 
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    //define url
    let url = NSURL (string: "http://www.my-url.com")
    //request
    let req = NSURLRequest(url: url as! URL)
    //load request into the webview
    myWebview(req as URLRequest) //error happens here : 


override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.



/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.

*/


这是一个屏幕截图(图片比长文本更能说明问题,对 =)

谢谢!

【问题讨论】:

看到一次***.com/questions/39682344/swift-3-webview 谢谢@Anbu.Karthik!它的工作!我不知道为什么,但它肯定有效! 【参考方案1】:

尝试使用:

  let url = NSURL (string: "https://google.com")
  let request = NSURLRequest(url: url as! URL)
  self. myWebView.loadRequest(request as URLRequest)

此代码适用于我

【讨论】:

感谢您的回复!我以后会试试的!【参考方案2】:

你可以使用SFSafariViewController:

import SafariServices

let url = URL(string: "https://www.google.com")
let safariVC: SFSafariViewController = SFSafariViewController(url: url)

self.present(safariVC, animated: true, completion: nil)

我使用了 swift 3 语法。 该代码会打开一个 Safari Web 视图,您无需在情节提要中创建 segue 和视图控件。

【讨论】:

您可以为其设置色调颜色、标题和其他属性。希望对您有所帮助! 我以后也试试!谢谢!

以上是关于Xcode 在另一个 ViewController 中打开 WebView的主要内容,如果未能解决你的问题,请参考以下文章

xcode 在另一个下插入一个视图

教程/示例:如何将数据从 ViewController 传递到另一个 XCODE [关闭]

通过在另一个 ViewController 中按下按钮/在另一个 ViewController 中引用 UITableView 创建 UITableViewCell

在另一个 ViewController 中的 ViewController 之间显示和切换

如何在另一个 ViewController 中将带有 Xib 的 ViewController 显示为 SubView

试图从一个 Viewcontroller 中的 UILabel 获取 NSString 以放置在另一个 Viewcontroller 的 UITextView 中