将使用两者之一。哪一个是未定义的。从表视图导航到 Web 视图
Posted
技术标签:
【中文标题】将使用两者之一。哪一个是未定义的。从表视图导航到 Web 视图【英文标题】:One of the two will be used. Which one is undefined. Navigating from Table View to Web View 【发布时间】:2017-06-15 01:39:22 【问题描述】:我正在尝试制作一个应用程序,使用户能够从表格中选择一个网站以访问该网站。我有一个嵌入在导航控制器中的 UITableViewController 以及从表格单元格到 Web 视图的 segue。但是每次我从表格视图中单击一个网站时,它都会将我带到一个空白页面一秒钟,然后再到我的网站。我希望能够直接进入网页,中间没有空白视图。我该怎么办?谢谢!
TableViewController 代码:
import UIKit
class WebTableViewController: UITableViewController
var websites = [Website]()
override func viewDidLoad()
super.viewDidLoad()
websites = WebsiteList.getAllWebsites()
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return websites.count
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let website = websites[indexPath.row]
cell.textLabel?.text = website.name
return cell
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
if let vc = storyboard?.instantiateViewController(withIdentifier: "Website") as? WebsiteViewController
vc.selectedWebName = websites[indexPath.row].name
navigationController?.pushViewController(vc, animated: true)
WebViewController 代码:
import UIKit
import WebKit
class WebsiteViewController: UIViewController
var webView: WKWebView!
var selectedWebName = String()
override func viewDidLoad()
super.viewDidLoad()
title = selectedWebName
webView = WKWebView()
view = webView
if let url = URL(string: "https://" + selectedWebName)
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
网站结构:
import Foundation
struct Website
var name: String
struct WebsiteList
static func getAllWebsites() -> [Website]
return [
Website(name: "youtube.com"),
Website(name: "apple.com"),
Website(name: "hackingwithswift.com")
]
Web view
A blank page between table view and web view after clicking on the back arrow from the previous view
【问题讨论】:
不是因为页面仍在加载/初始化您的 webView 这就是为什么您有“空白屏幕”吗?只是我的猜测 【参考方案1】:如果您正在为 ios 8 或更高版本为您的 WebViewController 编写此代码,则应该导入 WebKit。
然后你的 UIWebView 变成了 WKWebView 并且 webView.loadRequest(URLRequest(url: url))
变成:webView.load((URLRequest(url: url))
这可能是我的偏好,但您不需要将 getAllWebsites 设为静态函数。如果您在视图控制器中实例化 WebSiteList,您可以调用该函数以及以后可能需要的任何其他函数。
【讨论】:
如果它回答了您的问题,您应该投票和/或将其标记为答案。很高兴能提供帮助。 问题没有解决所以我没有解决。我在代码下方添加了图片作为链接,以进一步阐明问题。以上是关于将使用两者之一。哪一个是未定义的。从表视图导航到 Web 视图的主要内容,如果未能解决你的问题,请参考以下文章
JavaLaunchHelper 类在... libinstrument.dylib 中都实现了。将使用两者之一。哪个是未定义的
Swift UITest - 将使用两者之一。哪个是未定义的