我一直在寻找堆栈溢出很多并阅读与委托有关的许多不同问题,但我还没能解决我的问题。我试图让我的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
}
}
答案 0 :(得分:0)
如果您使用的是动态UITableView
,则可以在cellForRowAtIndexPath
内尝试以下内容:
dequeueCellWithReuseIdentifier
初始化您的单元格时,将其转换为BuyStatsCell
(可能带有as! BuyStatsCell
)以获取对其类变量的访问权。cell.setRemaining = self
设置委派。使用self
假设您的tableView的cellForRowAtIndexPath
位于BuyStats
viewController类中。如果不是,您可能希望在tableView代码所在的类中获取BuyStats
对象的引用,并使用该引用代替self
,如cell.setRemaining = /*yourBuyStatsObjectReferenceGoesHere*/
。希望有所帮助。