[此代码运行良好]这是我的情况:我有2个视图控制器,第二个必须有TableView。在第一个视图控制器中我有标签和按钮,当我按下他时,他把我带到第二个视图。当我按下按钮时,我也通过:2个参数 - 当前时间,另一个时间,这是自程序编译以来计算的。我的问题是如何将这两个参数放到tableView。它必须与MasterDetailApplication类似,当你按下+按钮时,它会在tableView中创建一个Date。在我的程序中,当我按下按钮并转到下一个ViewController时,它必须创建日期和时间。这是我的代码:
//Parameters.swift
import Foundation
struct Parameters {
let toPass : String
let toPass2: String
}
//SecondViewController
import UIKit
class SecondViewController: UIViewController {
var timer = NSTimer()
var counter = 0
@IBOutlet weak var labelCounter: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.hidesBackButton = true
labelCounter.text = String(counter)
timer = NSTimer.scheduledTimerWithTimeInterval(1,target:self, selector: Selector("update"),userInfo: nil, repeats :true)
}
func update(){
labelCounter.text = String(++counter)
if counter == 15 {
timer.invalidate()
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
if (segue.identifier == "segueTest") {
var transfer = segue.destinationViewController as TableViewController
transfer.toPass = labelCounter.text
transfer.toPass2 = "\(formatter.stringFromDate(NSDate()))"
}
}
}
//TableViewCOntroller
import UIKit
class TableViewController: UITableViewController {
@IBOutlet weak var label1: UILabel!
var toPass: String!
var toPass2: String!
var objects = [Parameters]()
override func viewDidLoad() {
super.viewDidLoad()
self.objects = [Parameters(toPass: toPass2, toPass2: toPass)]
// self.view.backgroundColor = UIColor(red :184.0, green: 219.0, blue: 243.0)
// self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "Cell")
// tableView.dataSource = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.objects.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("tableCell", forIndexPath: indexPath) as UITableViewCell
var param : Parameters
param = objects[indexPath.row]
cell.textLabel.text = param.toPass
cell.detailTextLabel?.text = param.toPass2 + " sec"
return cell
}
}
但我有另一个问题:当我按下我的按钮时,当我移动到tableViewController时,如何做到这一点我的2个参数将被保存并保留在tableViewController中?当我关闭应用程序时,此参数将丢失。我怎么能救他们?