在 tableView Swift 中使用 javascript 数据
Posted
技术标签:
【中文标题】在 tableView Swift 中使用 javascript 数据【英文标题】:use javascript data in tableView Swift 【发布时间】:2015-07-27 20:40:00 【问题描述】:您好,我是 Swift 编程新手,遇到以下问题。我在我的操作扩展中了解了如何从 safari 获取数据。使用 viewDidLoad 中的代码。到目前为止一切顺利。
我用教程构建了一个tableView,它工作正常。
知道我想使用从 safari 中提取的数据数据到我的 tableView 中。问题是我的 tableView 是先加载的,然后我的数据是从 safari 中提取的。
如何在 TableView 中直接使用数据?
这里是我的代码。当心我是新手,它正在建设中。 tableVie 现在填充了教程中演示的信息。
import UIKit
导入 MobileCoreServices
var webDataArray : [字符串] = []
类 ActionViewController: UIViewController, UITableViewDataSource, UITableViewDelegate
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var myTableView: UITableView!
var arrayOfWebData: [CustomCellContents] = [CustomCellContents]()
var effectStannd = false
override func viewDidLoad()
super.viewDidLoad()
for item: AnyObject in self.extensionContext!.inputItems
let inputItem = item as! NSExtensionItem
for provider: AnyObject in inputItem.attachments!
let itemProvider = provider as! NSItemProvider
if itemProvider.hasItemConformingToTypeIdentifier(kUTTypePropertyList as! String)
itemProvider.loadItemForTypeIdentifier(kUTTypePropertyList as! String, options: nil, completionHandler: (list, error) in
if let results = list as? NSDictionary
NSOperationQueue.mainQueue().addOperationWithBlock
var webData = results.description
webDataArray = split(webData) $0 == ","
var testArray = split(webDataArray[0]) $0 == " "
webDataArray.removeAtIndex(0)
webDataArray.append(testArray[7])
testArray = split(webDataArray[13]) $0 == " "
webDataArray.removeAtIndex(13)
webDataArray.append(testArray[1])
//println(webDataArray)
println(webDataArray.count)
)
println(webDataArray.count)
self.setUpWebData()
self.addEffect()
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
@IBAction func done()
// Return any edited content to the host app.
// This template doesn't do anything, so we just echo the passed in items.
self.extensionContext!.completeRequestReturningItems(self.extensionContext!.inputItems, completionHandler: nil)
func setUpWebData()
var webData1 = CustomCellContents(fileName: "Torrent", fileKind: "img1.jpeg")
var webData2 = CustomCellContents(fileName: "Magnet", fileKind: "img2.jpeg")
var webData3 = CustomCellContents(fileName: "Exe", fileKind: "img1.jpeg")
var webData4 = CustomCellContents(fileName: "DMG", fileKind: "img2.jpeg")
arrayOfWebData.append(webData1)
arrayOfWebData.append(webData2)
arrayOfWebData.append(webData3)
arrayOfWebData.append(webData4)
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return arrayOfWebData.count
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell: CustomCell = tableView.dequeueReusableCellWithIdentifier("Cell") as! CustomCell
let CustomCellContents = arrayOfWebData[indexPath.row]
cell.setCell(CustomCellContents.fileName, imageName: CustomCellContents.fileKind)
return cell
/////// Custom swip from Right
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath)
func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]?
var shareAction = UITableViewRowAction(style: .Normal, title: "Download") (action: UITableViewRowAction!, indexPath: NSIndexPath!) -> Void in
let firstActivityItem = self.arrayOfWebData[indexPath.row]
let activityViewControler = UIActivityViewController(activityItems: [firstActivityItem], applicationActivities: nil)
self.presentViewController(activityViewControler, animated: true, completion: nil)
shareAction.backgroundColor = UIColor.blueColor()
return [shareAction]
//// de volgende functie zorgt ervoor dat de rij automatisch word gedeselecteerd
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
self.myTableView.deselectRowAtIndexPath(indexPath, animated: true)
func addEffect()
if effectStannd
var effect = UIBlurEffect(style: UIBlurEffectStyle.Light)
var effectView = UIVisualEffectView(effect: effect)
effectView.frame = CGRectMake(0, 0, 320, 600)
view.addSubview(effectView)
effectStannd = false
【问题讨论】:
【参考方案1】:我在加载后刷新我的 tableview 时找到了解决方案。像这样可以正常工作。
func didRefreshList()
var tableView = myTableView
self.tableData = webDataArray3
tableView.reloadData()
self.refreshControl.endRefreshing()
【讨论】:
以上是关于在 tableView Swift 中使用 javascript 数据的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 在 TableView 单元中使用步进器增加标签
在 Swift 中使用远程 JSON 数据填充 tableView
在 tableView Swift 中使用 javascript 数据