如何将值从一个视图传递到iOS中的另一个视图? [英] How can I pass the value from a view to another view in iOS?
问题描述
import UIKit
class TableController: UITableViewController {
var items = NSMutableArray()
var TableData:Array< String > = Array < String >()
var json:String = ""
var quantity2: Int = 0
var shortDate: String = ""
@IBOutlet var myTableView: UITableView!
var arrayOfMenu: [Nutrisi] = [Nutrisi]()
override func viewDidLoad() {
super.viewDidLoad()
self.setUpMenu()
self.myTableView.delegate = self
self.myTableView.dataSource = self
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrayOfMenu.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: CustomCell = tableView.dequeueReusableCellWithIdentifier("cell") as! CustomCell
let menu = arrayOfMenu[indexPath.row]
cell.setCell(menu.type, rightlabeltext: menu.unit, imagename: menu.image)
var data = Nutritiondata(type: menu.type, amount: String(cell.value).toInt()!)
var json = JSONSerializer.toJson(data)
self.json = json
return cell
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func do_table_refresh()
{
dispatch_async(dispatch_get_main_queue(), {
self.tableView.reloadData()
return
})
}
func setUpMenu()
{
var json: JSON = JSON (data: NSData())
let frame:CGRect = CGRect(x: 110, y: 300, width: view.frame.width, height: 700)
self.tableView.frame = frame
DataManager.getnutritionsDataFromFileWithSuccess{ (data) -> Void in
json = JSON(data: data)
let results = json["results"]
for (index: String, subJson: JSON) in results {
}
for (var i = 0; i < json["nutritions"].count; i++) {
if let type = json["nutritions"][i]["type"].string {
if let icon: AnyObject = json["nutritions"][i]["icon"].string {
self.items.addObject(icon)
if let unit = json["nutritions"][i]["unit"].string {
dispatch_async(dispatch_get_main_queue(), {self.tableView!.reloadData()})
var menu = Nutrisi(type: type, unit: unit, image: icon as! String)
self.arrayOfMenu.append(menu)
self.TableData.append(type + unit )
self.do_table_refresh();
}
}
}
}
}
}
}
我已经有了这段代码,并且可以在表控制器视图上很好地工作,但是我想制作一个新的视图控制器,它可以打印json
(表控制器上的json
可以很好地工作并打印出来)
I've this code, and works well on table controller view, but I want to make a new view controller that prints json
(json
on table controller works well, and printed out)
因此,我将一个新的视图控制器连接到另一个名为senddata
的类,该命令用于在该类上打印json
,我想在按下按钮时打印该json
数据:
So, I made a new view controller connected to another class named senddata
what command that I should use to print json
on there, I want to print that json
data when the button pressed:
import UIKit
class SendData: UIViewController{
@IBAction func tes(sender: AnyObject) {
println()
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
推荐答案
您可以将JSON数据放在全局结构中,这样最终看起来像这样.
You could put that JSON Data in a global struct, so it would end up looking like this.
TableViewController.swift
TableViewController.swift
struct JSON {
static var JSONData = ""
}
class TableController: UITableViewController {
var items = NSMutableArray()
var TableData:Array< String > = Array < String >()
var json:String = ""
var quantity2: Int = 0
var shortDate: String = ""
@IBOutlet var myTableView: UITableView!
var arrayOfMenu: [Nutrisi] = [Nutrisi]()
override func viewDidLoad() {
super.viewDidLoad()
self.setUpMenu()
self.myTableView.delegate = self
self.myTableView.dataSource = self
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrayOfMenu.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: CustomCell = tableView.dequeueReusableCellWithIdentifier("cell") as! CustomCell
let menu = arrayOfMenu[indexPath.row]
cell.setCell(menu.type, rightlabeltext: menu.unit, imagename: menu.image)
var data = Nutritiondata(type: menu.type, amount: String(cell.value).toInt()!)
var json = JSONSerializer.toJson(data)
JSON.JSONData = json
return cell
}
SendData.swift
SendData.swift
class SendData: UIViewController{
@IBAction func tes(sender: AnyObject) {
println(JSON.JSONData)
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
这篇关于如何将值从一个视图传递到iOS中的另一个视图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!