禁用来自不同ViewController - Swift 3的按钮

时间:2017-12-15 09:51:10

标签: ios swift uitableview swift3

所以我想启用/禁用该tableViewCell的按钮:

class CommonPromoCell: UITableViewCell {
@IBOutlet weak var optionBtnCommon: UIButton

从其他tableViewCell

启用/禁用其他按钮时
 class PromoButtonCell: UITableViewCell {
 @IBOutlet weak var option1Btn: UIButton!
 @IBOutlet weak var option2Btn: UIButton!
 @IBOutlet weak var option3Btn: UIButton!

所以主要是我想要从选项1到选项3中选择一个来启用optionBtnCommon,并且当没有选择上述3个按钮时禁用它。

我尝试过像

这样的东西
var viewController: PromoButtonCell?

// TODO : DISABLE COMMON BUTTON WHEN NO OTHER IS SELECTED
        if (viewController?.option1Btn.isSelected)! || (viewController?.option2Btn.isSelected)! || (viewController?.option3Btn.isSelected)! {
            optionBtnCommon.isEnabled = true
        } else {
            optionBtnCommon.isEnabled = false
        }

如果写在func #selector的{​​{1}}

已编辑:

self.optionBtnCommon.addTarget

感谢。

1 个答案:

答案 0 :(得分:0)

如果用户可以更改option1Btn和option2Btn的状态,则需要在PromoButtonCell和视图控制器之间实现某种事件处理,以修改CommonPromoCell的状态。

我会创建一个协议,以便PromoButtonCell可以通知你的viewController细胞状态发生了变化。假设您使用PromoButtonCellDelegate等事件创建promoButtonCell:UITableViewCell didSelectButton: UIButton

然后viewController可以实现该协议,并在接收事件时,尝试访问另一个CommonPromoCell,以更改其状态。

听起来怎么样?