我是iOS编程的新手,并尝试制作简单的基于 TableViewCell
的应用程序点击其中我用动态URL打开 webView
.
在我的main.storyboard中,我添加了一个 UIViewController
,其中我添加了 Webview
和 NavigationBar
.
-
webView始终以全屏模式打开 . 因此,如果我添加导航栏或后退按钮,它将不会显示在视图中 .
-
如何从webView导航回包含项目列表的表格视图页面?
My code:
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添加为插座,因此上述方法对我无效 .
TableController代码,我点击一行时执行segue:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "recipeWebView", sender: self)
}
1 回答
是的,因为您没有添加导航控制器,因为导航栏无法执行 .
请按照以下类型 - >表视图 - >导航控制器 - > uiviewcontroller - > webview
让我知道它是否有用?