我正在尝试构建一个非常基本的浏览器,供公司内部使用。这是我用Swift编写的第一篇真正的代码,对初学者来说非常重要,并且依赖于教程。我已经成功地将文本显示在第二个控制器上,现在想用它来加载Web视图。
class ViewController: UIViewController {
@IBOutlet weak var urlField: UITextField!
@IBAction func launch(_ sender: Any) {
if urlField.text != "" {
performSegue(withIdentifier: "launch", sender: self)
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let secondController = segue.destination as! BrowserController
secondController.urlString = urlField.text!
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
这是我迷路的地方-如何将urlString转换为Web视图可以加载的内容?
到目前为止,我在第二个控制器中所拥有的只是
import UIKit
import WebKit
class BrowserController: UIViewController {
@IBOutlet weak var label: UILabel!
var urlString = String()
override func viewDidLoad() {
super.viewDidLoad()
label.text = urlString
// Do any additional setup after loading the view.
}
}
任何帮助都将不胜感激!
答案 0 :(得分:1)
将第二个视图控制器替换为以下内容
import UIKit
import WebKit
class BrowserController: UIViewController, WKNavigationDelegate {
@IBOutlet weak var label: UILabel!
var urlString = String()
var webView : WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
label.text = urlString
// Do any additional setup after loading the view.
//Load the webview
loadPage();
}
func loadPage(){
let url = NSURL(string: myBlog)
let request = NSURLRequest(URL: url!)
// init and load request in webview.
webView = WKWebView(frame: self.view.frame)
webView.navigationDelegate = self
webView.loadRequest(request)
self.view.addSubview(webView)
}
//MARK:- WKNavigationDelegate
func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
print(error.localizedDescription)
}
func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
print("Strat to load")
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
print("finish to load")
}
}
答案 1 :(得分:1)
import UIKit
class ViewController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var webView: UIWebView!
var urlString = ""
override func viewDidLoad() {
super.viewDidLoad()
webView.delegate = self
if let url = URL(string: urlString!) {
let request = URLRequest(url: url)
webView.loadRequest(request)
}
}
}
答案 2 :(得分:0)
如果您想在BrowserController中打开网站,则在从ViewController的文本字段获取网址后,请在BrowserController中使用此代码
import UIKit
import SafariServices
class BrowserController: UIViewController {
//@IBOutlet weak var label: UILabel!
var urlString = String()
override func viewDidLoad() {
super.viewDidLoad()
label.text = urlString
guard let url = URL(string: urlString ?? "") else { return }
let svc = SFSafariViewController(url: url)
present(svc, animated: false, completion: nil)
}
}
这是从应用程序中打开浏览器的最简单方法。
答案 3 :(得分:0)
如果您正在考虑列出可以单击该网站的表格列表,请查看我编写的本教程。
https://daddycoding.com/2017/10/17/ios-tutorials-triggering-tableviewcell-visit-site/