如何在事件发生后通过从Parse中提取的数据更改UIButton的文本



所以我有两个类似的按钮:一个是出口,另一个是动作。我这样做是因为我想更改其中一个的文本,并触发一个函数来增加另一个的计数。当用户点击"点赞按钮"时,点赞按钮会将其增量计数发送给Parse,并应增加点赞数。但出于某种原因,我可以将它的新计数(点赞数)发送给Parse,但它不会更改按钮的文本。这是我的代码:

        @IBOutlet weak var likeButton: UIButton!
@IBAction func likeButton(sender: AnyObject) {
    if (parseObject != nil) {
        if var likes: Int? = parseObject!.objectForKey("numberOfLikes") as? Int {
            let newNumberOfLikes = likes! + 1
            parseObject!.setObject(newNumberOfLikes, forKey: "numberOfLikes")
            parseObject!.saveInBackground()
            likeButton.setTitle("(newNumberOfLikes) likes", forState: UIControlState.Selected)
        }
    }
    // THIS WORKS
    unlikeButton?.hidden = false
    unlikeButton?.alpha = 1.0
    UIView.animateWithDuration(1.0, delay: 0, options: [], animations: {
        self.unlikeButton?.alpha = 1.0
        }, completion: {
            (value: Bool) in self.unlikeButton?.hidden = false
    })

由于类似按钮出口和按钮动作的名称相同(likeButton

尝试更改下面的任何其他名称

@IBAction func likeButton(sender: UIButton) {
  sender.setTitle("(newNumberOfLikes) likes", forState: .Normal)
}

尝试更改

likeButton.setTitle("(newNumberOfLikes) likes", forState: UIControlState.Selected)

likeButton.setTitle("(newNumberOfLikes) likes", forState: .Normal)

最新更新