【发布时间】:2018-05-29 05:08:03
【问题描述】:
我是 iOS 编程的新手,我正在尝试制作简单的基于 TableViewCell 的应用,点击后我会打开一个带有动态 URL 的 webView。
在我的 main.storyboard 中,我添加了一个UIViewController,我在其中添加了Webview 和NavigationBar。
webView 总是全屏打开。因此,如果我添加导航栏或后退按钮,它不会显示在视图中。
如何从 webView 导航回包含项目列表的表格视图页面?
我的代码:
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。有什么原因吗?-
我想使用 webview 的导航方法,例如:
@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 添加为插座,因此上述方法对我不起作用。
我在点击一行时执行 segue 的 TableController 代码:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "recipeWebView", sender: self)
}
【问题讨论】:
-
您需要将您的表格视图嵌入 UINavigationController 并在单元格上单击推送带有 WebView 的 ViewController。
-
添加控制器的代码,从那里你正在推动 webViewController
-
你是如何从第一个视图控制器导航到第二个视图控制器的?
-
使用表控制器代码更新信息
-
展示或呈现哪种类型的转场?
标签: ios swift uitableview uiwebview swift4