Swift2 Xcode 7-单元格内容未显示在空标签中

Swift2 Xcode 7-单元格内容未显示在空标签中,swift2,Swift2,我试图在一个空的UILabel中显示单元格内容,但升级到Xcode 7后,内容没有显示出来。我遵循相同的机制,它在Xcode 6上工作,但由于我是Swift新手,我可能在代码中有错误 TableViewController: import UIKit class TableViewController: UITableViewController { struct dataModel { var name:String var val:Double

我试图在一个空的UILabel中显示单元格内容,但升级到Xcode 7后,内容没有显示出来。我遵循相同的机制,它在Xcode 6上工作,但由于我是Swift新手,我可能在代码中有错误

TableViewController:

import UIKit

class TableViewController: UITableViewController {

    struct dataModel {
        var name:String
        var val:Double
    }

    let foods = [dataModel(name: "name1", val: 3.3),
        dataModel(name: "name2", val: 5.5)]


    @IBOutlet var table: UITableView!
    override func viewDidLoad() {
        super.viewDidLoad()

        // Uncomment the following line to preserve selection between presentations
        // self.clearsSelectionOnViewWillAppear = false

        // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
        // self.navigationItem.rightBarButtonItem = self.editButtonItem()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // MARK: - Table view data source

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 1
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return foods.count

    }


    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)

        // Configure the cell...
        let foodCell = foods[indexPath.row]
        cell.textLabel?.text = foodCell.name


        return cell
    }


    var valueToPass:String!
    var valueInt:Int!

    override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
        let indexPath = tableView.indexPathForSelectedRow;
        let currentCell = tableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell!;

        valueToPass = currentCell.textLabel!.text

        performSegueWithIdentifier("showCalc", sender: self)





    func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

        if (segue.identifier == "showCalc") {

            let viewController = segue.destinationViewController as! calcViewController
            viewController.passedValue = valueToPass
        }

    }
}
ViewController,我想在其中将点击的单元格显示为空标签:

import UIKit

class calcViewController: UIViewController {

    @IBOutlet var text: UILabel!

    @IBOutlet var empty1: UILabel!
    var passedValue:String!

    override func viewWillAppear(animated: Bool) {
        empty1.text = passedValue
    }
    override func viewDidLoad() {
        super.viewDidLoad()




        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
因此,没有错误,但在空标签内没有显示任何内容


我想实现的另一件事是将Int值显示到另一个标签中,然后进行一些计算,但这将是另一个问题。提前谢谢

此代码中有几个问题。首先,您显然缺少一些右大括号。但我认为这是一个复制粘贴错误

  • 为什么要使用
    didderowatindexpath
    ?你没有从表格视图单元格到下一个控制器的序列吗?然后,您应该使用
    tableView.indexPathForSelectedRow
    prepareforsgue
    中获取文本标签
  • 如果您想保持这种方式,您应该使用
    didSelect…
    而不是
    didSelect…
  • 您应该直接从数据而不是单元格获取要传递给下一个视图控制器的值。您将在foods数组的表中显示数据
  • 类名应始终以大写字母开头。永远
  • 在控制器中设置数据模型是一种糟糕的设计。您应该在自己的文件中分隔结构。在这种情况下,您甚至可以将完整的数据对象交给下一个视图控制器