UIButton选中时无法正确响应

时间:2018-06-19 14:31:36

标签: ios swift if-statement uibutton ibaction

我创建了一个具有四个按钮的视图控制器。每个按钮上都有一个选中标记的图像,但在视图加载时被隐藏。一旦选择了按钮,复选标记应显示在该按钮上,以通知用户该选择已由系统进行。如果用户在屏幕上选择其他按钮,我希望原来的按钮复选标记消失,而复选标记出现在新选择中。

当我运行该软件并且视图加载时,一切正常运行。问题是在我选择了第一个按钮之后。当视图加载后第一次单击按钮时,复选标记将按原样出现在该视图上。一旦尝试选择第二个按钮,便无法选择它,并且复选标记保留在所选的第一个按钮上。

此功能的代码如下:

@IBAction func nomineeSelected(_ sender: UIButton) {
        if sender == optionA {
          checkboxA.hideBox = false
          checkboxA.on = true
          checkboxB.isHidden = true
          checkBoxC.isHidden = true
          checkBoxD.isHidden = true

        } else if sender == optionB {
            checkboxB.hideBox = false
            checkboxB.on = true
            checkboxA.isHidden = true
            checkBoxC.isHidden = true
            checkBoxD.isHidden = true
            checkBoxD.isHidden = true
        } else if sender == optionC {
            checkBoxC.hideBox = false
            checkBoxC.on = true
            checkboxA.isHidden = true
            checkboxB.isHidden = true
            checkBoxD.isHidden = true
        } else  {
            checkBoxD.hideBox = false
            checkBoxD.on = true
            checkboxA.isHidden = true
            checkboxB.isHidden = true
            checkBoxC.isHidden = true

        }
    }

1 个答案:

答案 0 :(得分:0)

用户Private Function LoaderData(ByVal strSql As String) As DataTable Dim cnn As SqlConnection Dim dad As SqlDataAdapter Dim dtb As New DataTable cnn = New SqlConnection(My.Settings.mySqlConnectionString) Try cnn.Open() dad = New SqlDataAdapter(strSql, cnn) dad.Fill(dtb) cnn.Close() dad.Dispose() Catch ex As Exception cnn.Close() MsgBox(ex.Message) End Try Return dtb End Function 运算符而不是===来测试两个对象引用是否都引用同一对象实例。
像这样==

Read more about Operators in swift