使用TableView将参数传递给下一个ViewController

时间:2014-10-29 09:55:56

标签: ios xcode uitableview swift

[此代码运行良好]这是我的情况:我有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中?当我关闭应用程序时,此参数将丢失。我怎么能救他们?

0 个答案:

没有答案