私はstackoverflowをたくさん見ていて、委任に関するさまざまな質問をたくさん読んでいますが、私はまだ問題を解決することができませんでした。私はステッパーアクション(テーブルビューのセルの中にあります)をクリックするたびに、私の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