У меня есть класс UITableViewCell, и эта ячейка инициализируется из другого класса, содержащего табличное представление. Я хочу передать целочисленное значение в класс ячеек из класса tableview.
В задаче c это было просто сделано путем создания глобальной переменной и передачи значений при создании экземпляра класса глобальной переменной. Мне не нужно какое-либо значение во время объявления, и эта глобальная переменная изменит значение и получит значение, когда оно будет передано другим классом.
Я не знаю, где ошибка, пожалуйста, смотрите мой код, указанный ниже:
Класс UITableViewCell: -
import UIKit
class PostHeaderCell: UITableViewCell {
var loopVariable: Int? // This is global variable that i have written
@IBOutlet weak var viewMain: UIView!
@IBOutlet weak var viewCategory: UIView!
@IBOutlet weak var mainViewHeight: NSLayoutConstraint!
@IBOutlet weak var topLayoutViewCategory: NSLayoutConstraint!
override func awakeFromNib() {
super.awakeFromNib()
print(loopVariable)
viewMain.layer.cornerRadius=5.0
viewMain.layer.borderColor = UIColor(red: 212.0/255.0, green: 217.0/255.0, blue: 221.0/255.0, alpha: 1.0).CGColor
viewMain.layer.borderWidth=1.0
var myVar = 50.0 as CGFloat
for var i=0;i<loopVariable;i++
{
mainViewHeight.constant=mainViewHeight.constant+30
var postCell :PostCategoryView?
postCell = NSBundle.mainBundle().loadNibNamed("PostCategoryView", owner: self, options: nil)[0] as? PostCategoryView
postCell!.frame=CGRectMake(10,myVar+10,postCell!.frame.size.width,50)
print(postCell)
myVar = myVar + 55.0;
}
self.layoutSubviews()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
Теперь я реализовал этот класс UITableViewCell в другом классе и передал значение переменной цикла из этого класса. Пожалуйста, посмотрите приведенный ниже код для вызова и создания экземпляра PostHeaderCell-Class B: -
var cell:PostHeaderCell! = tableView.dequeueReusableCellWithIdentifier("PostHeaderCell", forIndexPath: indexPath) as! PostHeaderCell
cell.loopVariable=2
return cell
Примечание. Я хочу инициализировать значение переменной цикла из класса B, но оно всегда дает nil (я передал 2 в качестве значения для loopVariable).