Ios 如何以编程方式在TableView上添加WKWebView

Ios 如何以编程方式在TableView上添加WKWebView,ios,swift,uitableview,wkwebview,Ios,Swift,Uitableview,Wkwebview,我试图制作一个简单的应用程序,将数据从网络映射到表。但是该站点需要OAuth 2.0的授权和令牌的接收。希望为此以编程方式显示带有WKWebView的视图。我这样做: import UIKit import WebKit class TableViewController: UITableViewController, WKUIDelegate { var webView: WKWebView! override func viewDidLoad() { su

我试图制作一个简单的应用程序,将数据从网络映射到表。但是该站点需要OAuth 2.0的授权和令牌的接收。希望为此以编程方式显示带有WKWebView的视图。我这样做:

import UIKit
import WebKit

class TableViewController: UITableViewController, WKUIDelegate {
    var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let webConfiguration = WKWebViewConfiguration()
        webView = WKWebView(frame: CGRect(x: 0.0, y: 0.0, width: tableView.bounds.width, height: tableView.bounds.height), configuration: webConfiguration)
        webView.uiDelegate = self
        tableView.addSubview(webView)
        let myRequest = URLRequest(url: URL(string: "https://www.google.ru/")!)
        webView.load(myRequest)
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 5
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "idFriendCell", for: indexPath)
        cell.textLabel?.text = String(indexPath.row)
        return cell
    }
}
但是,单独的TableView与我的WebView重叠:
如何正确操作?

这里至少有两个简单的解决方案

1) 您可以创建自定义的
UIViewController
,替换您的
TableViewController
。继承
UIViewController
而不是
UITableViewController
。在那里手动添加
tableView
,如果需要,将
controller
UITableViewDataSource
UITableViewDelegate
一致。然后将
webView
添加到其
视图中


2) 您可以创建新的
controller
,将
webView
添加到其中。然后在您的
tableView控制器中新建
控制器

是否需要同时显示webView和tableView?不,显示我需要一个。该程序是一个TableViewController,我想显示一个WebView进行授权,并获取令牌(从地址栏)并关闭WebView。我正在学习以编程方式创建元素。我可以创建一个新的ViewController,并以编程方式向其中添加一个WebView(没有故事板)?然后将其显示在möTableViewController?@flowGlen的顶部。是的,你可以。如果你会遇到麻烦的话。写-我将扩展我的答案