2017-06-15 8 views
1

私は、ユーザーがテーブルからそのウェブサイトに行くウェブサイトを選択できるようにするアプリケーションを作ろうとしています。私はNavigation Controllerに埋め込まれたUITableViewControllerと、表のセルからWebビューへのSegueを持っています。しかし、私はテーブルビューからウェブサイトをクリックするたびに、1秒間空白のページに、それから私のウェブサイトにつながります。その間に空白の表示なしで直接Webページに移動したいと思っています。私はどうすればこれについて行くことができますか?ありがとうございました!2つのうちの1つが使用されます。どちらが未定義ですか。テーブルビューからウェブビューへのナビゲート

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

+0

ページがまだ読み込まれている/なぜあなたは "空白の画面"を持っているあなたのwebView thatsを初期化する?ちょうど私の推測 – Joshua

答えて

0

WebViewController用のiOS 8以降でこれを作成する場合は、WebKitをインポートする必要があります。

その後、あなたのUIWebViewはWKWebViewと webView.loadRequest(URLRequestの(URL:URL))となっ

は次のようになります。webView.load((URLRequestの(URL:URL))

また、これは私かもしれあなたのビューコントローラでWebSiteListをインスタンス化すると、その関数や後で必要になる可能性のある関数を呼び出すことができます

+0

私のコードを更新:) –

+0

あなたの質問に答えた場合は投票して答えとしてマークしてください。喜んで助けてください。 – returnVoid

+0

問題は解決されていないので、私はそれをしませんでした。問題をさらに明確にするために、コードの下にリンクとして画像を追加しました。 –

関連する問題