我想将内部array
个对象设置为UITableViewCell
这是我的班级:
import Foundation
class AvailableCoursesInitialResponseModel: BaseObject {
var availableCourses : [CoursesModel]!
}
class CoursesModel: BaseObject{
var categoryName : String!
var categoryData : [categoryDataModel]!
}
class categoryDataModel: BaseObject{
var classInfo : classInfromationModel!
var classList : [classListDetailModel]!
}
class classInfromationModel: BaseObject{
var displayText : Bool!
var updatedBy : Int!
var endDate : String!
var groups : String!
}
class classListDetailModel : BaseObject{
var courseFee: String!
var fromTime : NSDate!
var courseDate : NSDate!
var location : String!
var className : String!
var registration : String!
var courseCalendarId : Int!
var toTime : NSDate!
}
我已将自定义UITableViewCell
设为:
import UIKit
class AvailableCoursesSecondViewControllerTableViewCell: UITableViewCell {
var model : classListDetailModel!
@IBOutlet weak var lblDecription: UILabel!
@IBOutlet weak var lblClassName: 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
}
}
这是包含UITableView
的视图控制器:
import UIKit
class AvailableCoursesSecondViewController:
UIViewController,UITableViewDelegate{
@IBOutlet weak var tableView: UITableView!
var myDataSource = AvailableCoursesInitialResponseModel()
override func viewDidLoad(){
self.tableView.reloadData()
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: AvailableCoursesSecondViewControllerTableViewCell = (NSBundle.mainBundle().loadNibNamed("AvailableCoursesSecondViewControllerTableViewCell", owner: self, options: nil).first as? AvailableCoursesSecondViewControllerTableViewCell)!
let model = myDataSource.availableCourses[indexPath.row]
Here i want to access the properties of **classListDetailModel**
my custom cell.
cell.backgroundColor = kColorLightGray_DW
return cell
}
如何在classListDetailModel
子类中设置UITableViewCell
的属性,或者如何访问classListDetailModel
的属性。
答案 0 :(得分:2)
我不确定您的用户界面以及处理indexPath
的方式,但您可以使用来自model
的{{1}}来访问您的列表项。
搜索@ myDataSource.availableCourses[indexPath.row]
- > CoursesModel
- > categoryDataModel
财产。
这是classList
个array
个对象,因为正如我在开头提到的那样,我不确定classListDetailModel
,它认为它们引用了indexPath
您可以使用availableCourses
进行迭代以逐个查找项目。
forEach
答案 1 :(得分:1)
当您传递给当前视图控制器时,您可以传递ArrayIndex以及它。我的意思是,
在actionMethod中设置此方法
let model = myDataSource.availableCourses[indexPath.row]
// Instantiate SecondViewController
let secondViewController = self.storyboard?.instantiateViewControllerWithIdentifier("SecondViewController") as! SecondViewController
//pass the model to your DataSource
secondViewcontroller.myDataSource = model
self.navigationController?.pushViewController(secondViewController, animated: true)
并在您的secondViewController中设置数据源
var myDataSource : CoursesModel!
现在您可以在单元格中设置属性,如:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: AvailableCoursesSecondViewControllerTableViewCell = (NSBundle.mainBundle().loadNibNamed("AvailableCoursesSecondViewControllerTableViewCell", owner: self, options: nil).first as? AvailableCoursesSecondViewControllerTableViewCell)!
let model = myDataSource.classList[indexPath.row]
cell.lblClassName.text = model.className
cell.lblDescription.text = //set your description from the model.
cell.backgroundColor = kColorLightGray_DW
return cell
}
我希望你明白我的意思。如果它不起作用,请随时发表评论。