2017-07-13 12 views
0

私は現在NavigationControllerを備えたTableViewControllerとして自分のルートビューコントローラを持っています。UITableViewCellが選択された後にUIWebViewを表示する方法は?

window?.rootViewController = UINavigationController(rootViewController: FeedTableViewController(style: .grouped)) 

セルが選択されたとき、私のTableViewControllerでHTMLの文字列でWebViewをロードしたいと思います。

私のコードは、現在、次のとおりです。

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     guard let layout = TableViewLayout(indexPath: indexPath) else { fatalError() } 
     switch layout { 
     case .items: 
      // load web view with html from a string 
     default: 
      break 
     } 
    } 

私はWebViewのにHTMLの文字列をロードする方法を見てきましたが、私はそれのWebViewにセルがあるときに表示されビューを作成する方法がわかりません選択された。可能であれば、NavigationControllerを壊さないためにも必要です。

+0

です:

は、あなたのhtmlの原点を設定することを忘れないでください?他のviewcontrollerやテーブルと同じですか?これはストーリーボードまたはプログラムによって実装されていますか? @GIJOWプログラム的に – GIJOW

+0

。私は全くWebViewを持っていません。私は1つを作成する必要がありますと私は確信していない – FlashDrive

+0

しかし、あなたはあなたのテーブルと同じviewcontrollerでそれを表示したいですか? – GIJOW

答えて

1

「これがNavigationControllerを保持しているかどうか」を知るためにあなたのコメントでかなり難しいです。

しかし、私は、それは、少なくともあなたの手掛かりを与えることができると思います:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     guard let layout = TableViewLayout(indexPath: indexPath) else { fatalError() } 
     switch layout { 
     case .items: 
      let webView = UIWebView(frame: CGRect(x: tableView.frame.origin.x, y: tableView.frame.origin.y, width: tableView.frame.size.width, height: tableView.frame.size.height) 
      let testHTML = Bundle.main.path(forResource: "privacy", ofType: "html") 
      do { 
       let contents = try NSString(contentsOfFile: testHTML!, encoding: String.Encoding.utf8.rawValue) 
       let baseUrl = NSURL(fileURLWithPath: testHTML!) //for load css file 
       webView.loadHTMLString(contents as String, baseURL: baseUrl as URL) 
      } catch { 
       print("error") 
      } 
      self.view.addSubview(webView) 
     default: 
      break 
     } 
} 

それはあなたのテーブルビューと同じフレームでのWebViewを追加します。あなたのWebViewが

let testHTML = Bundle.main.path(forResource: "privacy", ofType: "html") 
+0

私はもうTableViewに戻ることはできませんが、私はそれを解決できると思います。あなたの答えははっきりとわかりました。 – FlashDrive

+0

お手伝いします。私はちょうど "より甘い3"の答えを更新しました。それが役に立てば幸い – GIJOW

関連する問題