简体   繁体   English

UITableView中的自定义单元格标签不填充

[英]Custom Cell Labels in UITableView Does Not Populate

On my storyboard is a Tab Bar Controller with two view controllers. 在我的情节提要上,是带有两个视图控制器的Tab Bar Controller。 The first view controller has a UITableView, and the second view controller is used to collect data which will be displayed in table view format on the first view controller. 第一视图控制器具有UITableView,第二视图控制器用于收集将以表视图格式显示在第一视图控制器上的数据。

For this, I have created four swift files: 为此,我创建了四个swift文件:

  1. TARISKTREATMENT.swift - contains the class TARISKTREATMENT that's linked to the first view controller (the one with the UITableView) TARISKTREATMENT.swift-包含链接到第一个视图控制器(带有UITableView的类)的TARISKTREATMENT类

  2. TAADDRISKTREATMENT.swift - contains the class TAADDRISKTREATMENT that's linked to the second view controller. TAADDRISKTREATMENT.swift-包含链接到第二个视图控制器的类TAADDRISKTREATMENT。

  3. TREATMENTS.swift - Struct that's used to collect data entered on second view controller. TREATMENTS.swift-用于收集在第二个视图控制器上输入的数据的结构。

  4. CUSTOMTREATMENTCELL.swift - UITableViewCell class for the custom cell. CUSTOMTREATMENTCELL.swift-自定义单元格的UITableViewCell类。

The second view controller collects the data from the user perfectly, and when I run print commands, I can see that the data is actually in the struct. 第二个视图控制器完美地从用户收集数据,当我运行打印命令时,我可以看到数据实际上在结构中。

For some reason, the code from TARISKTREATMENT.swift does not populate the custom cell. 由于某些原因,TARISKTREATMENT.swift中的代码不会填充自定义单元格。

What am I doing wrong here? 我在这里做错了什么?

CODE: TARISKTREATMENT.swift (View controller 1 with UITableView - the one that's not working...) 代码:TARISKTREATMENT.swift(带有UITableView的View控制器1-无效的...)

import UIKit

class TARISKTREATMENT: UIViewController, UITableViewDataSource, UITableViewDelegate {

    @IBOutlet weak var TreatmentsTableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        TreatmentsTableView.dataSource = self
        TreatmentsTableView.delegate = self
        TreatmentsTableView.reloadData()

    }//END - viewDidLoad

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return TreatmentsManager.newTreatments.count
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let IndividualCell = TreatmentsTableView.dequeueReusableCellWithIdentifier("TreatmentCell", forIndexPath: indexPath) as! CUSTOMTREATMENTCELL

        IndividualCell.outletLabel_TreatmentPackageName.text = TreatmentsManager.newTreatments[indexPath.row].varTreatmentPackageName

        IndividualCell.outletLabel_TreatmentDescription.text = TreatmentsManager.newTreatments[indexPath.row].varTreatmentPackageDetail

        IndividualCell.outletLabel_TreatmentResponsiblePerson.text = TreatmentsManager.newTreatments[indexPath.row].varTreatmentResponsiblePerson

        IndividualCell.outletLabel_TreatmentDTGCompleted.text = String(TreatmentsManager.newTreatments[indexPath.row].varTreatmentDTGCompleted)

        let varSelectPriorityPic = TreatmentsManager.newTreatments[indexPath.row].varTreatmentPriority

        switch varSelectPriorityPic {   
        case "HIGH":
            IndividualCell.outletImage_TreatmentPriority.image = imageTreatmentPriorityHigh
        case "MEDIUM":
            IndividualCell.outletImage_TreatmentPriority.image = imageTreatmentPriorityMedium
        case "LOW":
            IndividualCell.outletImage_TreatmentPriority.image = imageTreatmentPriorityLow
        default:
            break
        }
        return IndividualCell
    }

    func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){
        if (editingStyle == UITableViewCellEditingStyle.Delete){

            TreatmentsManager.newTreatments.removeAtIndex(indexPath.row)
            TreatmentsTableView.reloadData()
        }
    }
}

CODE: TREATMENTS.swift 代码:TREATMENTS.swift

import UIKit

var TreatmentsManager: classTreatmentsManager = classTreatmentsManager()

struct structTreatment {
    var varTreatmentPackageName : String
    var varTreatmentPackageDetail : String
    var varTreatmentResponsiblePerson : String
    var varTreatmentPriority : String
    var varTreatmentDTGCompleted : NSDate
}

class classTreatmentsManager: NSObject {

    var newTreatments = [structTreatment]()

    func funcAddTreatment(varTreatmentPackageName: String, varTreatmentPackageDetail: String, varTreatmentResponsiblePerson: String, varTreatmentPriority: String, varTreatmentDTGCompleted: NSDate){

        newTreatments.append(structTreatment(varTreatmentPackageName: varTreatmentPackageName, varTreatmentPackageDetail: varTreatmentPackageDetail, varTreatmentResponsiblePerson: varTreatmentResponsiblePerson, varTreatmentPriority: varTreatmentPriority, varTreatmentDTGCompleted: varTreatmentDTGCompleted))
    }
}

CODE: CUSTOMTREATMENTCELL.swift 代码:CUSTOMTREATMENTCELL.swift

import UIKit

class CUSTOMTREATMENTCELL: UITableViewCell {

    @IBOutlet weak var outletImage_TreatmentPriority: UIImageView!

    @IBOutlet weak var outletLabel_TreatmentPackageName: UILabel!

    @IBOutlet weak var outletLabel_TreatmentDescription: UILabel!

    @IBOutlet weak var outletLabel_TreatmentResponsiblePerson: UILabel!

    @IBOutlet weak var outletLabel_TreatmentDTGCompleted: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }
}

I've uploaded a small video to show what's (not) happening here . 我上传了一个小视频,以显示此处 (未发生)的情况。

Your assistance is appreciated - thanks! 感谢您的协助-谢谢!

Everything is fine in your code. 您的代码中的一切都很好。 What you miss is reloading the data : 您错过的是重新加载数据:

 override func viewWillAppear() {
    super.viewWillAppear()
    TreatmentsTableView.reloadData()
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM