나는 stackoverflow를 많이보고 있었으며 위임과 관련된 많은 다른 질문을 읽었지만 아직 내 문제를 해결하지 못했습니다. 내 stepperAction (tableview 셀 안에 있음)을 클릭 할 때마다 내 BuyStats 클래스의 레이블을 변경하려고합니다. 그러나 지금까지는 스테퍼를 클릭해도 효과가 없습니다. 어떻게 든 대리자를 설정하려면 BuyStats.viewDidLoad()에서 뭔가가 필요하다고 생각하지만 이해하지 못하고 있습니다. 이것은 누군가에게 쉬운 일일 수 있습니다. 어떤 도움을 주셔서 감사합니다.신속한 위임 - Tableview 셀의 스테퍼를 사용하여 별도의 클래스에서 레이블 업데이트
protocol SetRemainingValue : class {
func setValue(amount: Double)
}
}
//
class BuyStatsCell: UITableViewCell{
weak var setRemaining : SetRemainingValue?
@IBAction func stepperAction(_ sender: UIStepper) {
setRemaining?.setValue(amount: sender.value)
}
//
class BuyStats: UIViewController, SetRemainingValue {
@IBOutlet weak var spendAmount: UILabel!
override func viewDidLoad(){
}
func setValue(amount: Double) {
spendAmount.text = amount
}
}
어디서'BuyStatsCell' 개체를 만들었습니까 ?? 'BuyStats' 클래스의 어딘가에'obj.setRemaining = self'를 설정해야합니다. 그렇지 않으면 누가'BuyStatsCell'의'delegate'를 정의하지 않았고 당신이 위임을 통해 전달하는 메시지는 효과가 없습니다. 이러한 프로토콜과 대리자가 어떻게 작동하는지 더 자세히 알기 위해 [이 대답] (http://stackoverflow.com/a/41689281/3687801)을 살펴보십시오. – nayem