在同一个 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 中加载网页时如何启动 inappbrowser
IBM Worklight/Cordova 未在 Android 上 Worklight 的嵌入式 WebView 中加载