Swift 4:从另一个函数访问IBAction发送者?

时间:2018-06-01 14:19:49

标签: ios swift

我正在开发纸牌游戏应用,并且当我们用完dealThreeMore时,我将sender game.cards设置为禁用。

当我重置游戏时,我不知道如何访问此发件人按钮以重新启用它。有没有办法在没有用户实际按下此按钮且在dealThreeMore func之外的情况下访问它?

Github

@IBAction func dealThreeMore(_ sender: UIButton) {
        // have a match and cards available to deal
        if !matched.isEmpty && !game.cards.isEmpty {
            clearAndDeal()
        } else {
            // deal three more cards
            //TODO: make sure no set exists before allow dealing more?
            deal()
        }
        // disable if we run out of cards
        if game.cards.isEmpty {
            disable(button: sender)
            resetInfoLabel()
        }
    }

private func disable(button sender: UIButton){
    sender.isEnabled = false
    sender.backgroundColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 0.5160798373)
}

1 个答案:

答案 0 :(得分:2)

您可以创建@IBOutlet属性以保留对按钮的引用。

@IBoutlet weak var mMyButton : UIButton?

然后在storyboard / xib文件中创建连接,您就可以使用mMyButton.isSelected = false