Swift UIButton按钮标题在单击另一个按钮时自动更改为其标题

Swift UIButton按钮标题在单击另一个按钮时自动更改为其标题,swift,button,uibutton,set,Swift,Button,Uibutton,Set,我的应用程序中有12个按钮。最后一个按钮的标题会自动更改为我按下的任何其他按钮的标题。例如,如果按钮3的标题是Joe,那么最后一个按钮(标记12)会自动更改为Joe(即使没有代码更改其标题。这很奇怪 PS:我最初在代码中设置了标题: func btnSetIcon(btnNumber: Int){ println("In btnSetIcon btnNumber = \(btnNumber)") btn.titleLabel?.numberOfLines = 2 bt

我的应用程序中有12个按钮。最后一个按钮的标题会自动更改为我按下的任何其他按钮的标题。例如,如果按钮3的标题是Joe,那么最后一个按钮(
标记12
)会自动更改为Joe(即使没有代码更改其标题。这很奇怪

PS:我最初在代码中设置了标题:

func btnSetIcon(btnNumber: Int){

    println("In btnSetIcon btnNumber = \(btnNumber)")

    btn.titleLabel?.numberOfLines = 2
    btn.titleLabel?.textAlignment = NSTextAlignment.Center
    btn.titleLabel?.adjustsFontSizeToFitWidth = true

    detail1.keyboardType = UIKeyboardType.ASCIICapable
    detail1.rightViewMode = UITextFieldViewMode.Never

    switch btnNumber {
        case 1: btn.setTitle("BUCKET\nLIST", forState: .Normal)
        case 2: btn.setTitle("SHOP\nLIST", forState: .Normal)
        case 3: btn.setTitle("GROCERY\nLIST", forState: .Normal)
        case 4: btn.setTitle("TO DO\nLIST", forState: .Normal)
        case 5: btn.setTitle("NOTES\nTO SELF", forState: .Normal)
        case 6: btn.setTitle("SOS\nLIST", forState: .Normal)
        case 7: btn.setTitle("PHONE\n#'s", forState: .Normal)
        case 8: btn.setTitle("EVENT\nLIST", forState: .Normal)
        case 9: btn.setTitle("YOUR 1\nLIST", forState: .Normal)
        case 10: btn.setTitle("YOUR 2\nLIST", forState: .Normal)
        case 11: btn.setTitle("YOUR 3\nLIST", forState: .Normal)
        case 12: btn.setTitle("YOUR 4\nLIST", forState: .Normal)
        default: btn.setTitle("✚", forState: .Normal)
    }
}

您没有将变量
btn
传递到
btnSetIcon()
,因此它必须是
viewController
的一个属性
btn
可能被设置为添加到
viewController
的最后一个按钮,因此当您调用
btnSetIcon()
时,该按钮将被更新

也许您想在
btnSetIcon()中执行类似操作:


如何创建按钮?按下按钮时是否调用
btnSetIcon()
?如果是,为什么?
if let btn = self.view.viewWithTag(btnNumber) as? UIButton {
    // update btn in here
}