【发布时间】:2017-09-07 15:16:13
【问题描述】:
我一直在查看 stackoverflow 并阅读了很多与委派相关的不同问题,但我还没有解决我的问题。我试图让我的 stepperAction(在 tableview 单元格内)每次单击时更改我的 BuyStats 类中的标签。但到目前为止,单击步进器没有任何效果。我想我需要在 BuyStats.viewDidLoad() 中以某种方式设置委托,但我没有得到它。这对某人来说可能很容易。谢谢你的帮助。
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未定义,您通过委托传递的消息将不会生效。要了解有关这些协议和委托如何工作的更多信息,您可以查看this answer
标签: swift protocols delegation