Я новичок в программировании на iOS и пытаюсь создать простое приложение на основе TableViewCell
, щелкнув по которому, я открываю webView
с динамическим URL.
В main.storyboard я добавил UIViewController
, в который я добавил Webview
и NavigationBar
.
Веб-просмотр всегда открывается в полноэкранном режиме.Поэтому, если я добавлю панель навигации или кнопку «Назад», она не будет отображаться в представлении.
Как я могу вернуться на страницу просмотра таблицы, содержащую список элементов, извеб-просмотр?
Мой код:
import UIKit
import WebKit
class WebViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
title = webView.title
}
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: webURL)!
print(url)
webView.load(URLRequest(url: url))
}
override func loadView() {
webView = WKWebView()
webView.navigationDelegate = self
view = webView
}
}
Прямо сейчас в приведенном выше коде я добавил webView в качестве простой переменной.Как только я сделаю @IBOutlet
и ссылку на этот контроллер, код выдаст SIGBART error
.Любая причина?
Я хочу использовать методы навигации веб-просмотра, такие как:
@IBAction func backAction(sender: AnyObject) {
if webView.canGoBack {
webView.goBack()
}
}
@IBAction func forwardAction(sender: AnyObject) {
if webView.canGoForward {
webView.goForward()
}
}
@IBAction func refreshAction(sender: AnyObject) {
webView.reload()
}
@IBAction func stopAction(sender: AnyObject) {
webView.stopLoading()
}
, но так как я не могу добавить WebView в качестве выхода, вышеуказанные методыне работайте для меня.
Код TableController, из которого я выполняю переход по щелчку строки:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "recipeWebView", sender: self)
}