在同一个 webView 中加载不同页面的按钮

Posted

技术标签:

【中文标题】在同一个 webView 中加载不同页面的按钮【英文标题】:Button to load different page in same webView 【发布时间】:2015-03-14 18:53:51 【问题描述】:

按下视图控制器中的按钮后,我有一个 webview 加载本地 html 页面。如何在 webview 下放置一个按钮以在同一个 web view 中加载不同的内容? ViewController 没有输入额外的代码,只是在故事板中输入了一个按钮,并带有当前模式 segue 到 webView 控制器 webView 有如下代码。

//
//  WebViewer.swift
//  TestWebView
//
//  Created by Colin McGarry on 13/03/15.
//  Copyright (c) 2015 Colin McGarry. All rights reserved.
//

import UIKit

class WebViewer: UIViewController 

var page = "2page"

@IBOutlet weak var webView: UIWebView!


@IBAction func close(sender: AnyObject) 
 println(sender.tag)
dismissViewControllerAnimated(true, completion: nil)


@IBAction func reLoad(sender: AnyObject) 
 println(sender.tag)
page = "1page"
 webView!.reload()

override func viewDidLoad() 
    super.viewDidLoad()

    // Do any additional setup after loading the view.

  if let htmlFile = NSBundle.mainBundle().pathForResource(page, ofType: "html")
    let htmlData = NSData(contentsOfFile: htmlFile)
    let baseURL = NSURL.fileURLWithPath(NSBundle.mainBundle().bundlePath)
    webView.loadData(htmlData, MIMEType: "text/html", textEncodingName: "UTF-8", baseURL: baseURL)
  



override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.



/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.

*/


在 webView 下,我放置了两个按钮,一个用于关闭并返回视图控制器,另一个我想在此视图中重新加载不同的网页。 我尝试了一个带有重新加载按钮的 sender.tag 的 if 语句,但它没有被识别。第一个 viewController 的 segue 标识符也不是

【问题讨论】:

我删除了tags from the title,更正了一个过于宽泛的标签,并稍微澄清了问题。但是,您应该包含您当前的代码。 【参考方案1】:

我从一个未回答的问题中找到了解决方案。

我将我的 reload() 函数更改为。

@IBAction func reLoad(sender: AnyObject) 
println(sender.tag)
page = "1page"

if let htmlFile = NSBundle.mainBundle().pathForResource(page, ofType: "html")
let htmlData = NSData(contentsOfFile: htmlFile)
let baseURL = NSURL.fileURLWithPath(NSBundle.mainBundle().bundlePath)
webView.loadData(htmlData, MIMEType: "text/html", textEncodingName: "UTF-8", baseURL: baseURL)



我认为将重复的代码放在一个函数中并每次调用它可能会更好。

【讨论】:

以上是关于在同一个 webView 中加载不同页面的按钮的主要内容,如果未能解决你的问题,请参考以下文章

WebView在android中加载缓慢?

在 webview 中加载网页时如何启动 inappbrowser

IBM Worklight/Cordova 未在 Android 上 Worklight 的嵌入式 WebView 中加载

在初始化程序中加载 webview 内容

在 WebView 中加载页面之前,用本地 Android 资源替换 HTML 文档的图像

在 webview 中加载本地 javascript?