誰でも教えてください、迅速に2.2の追加機能で追加パラメータを送信する方法は? 例:addtarget関数で追加パラメータを送信する方法は?
func myFunc(sender:UIButton,parameter:String){
print(“i am here“)
}
誰でも教えてください、迅速に2.2の追加機能で追加パラメータを送信する方法は? 例:addtarget関数で追加パラメータを送信する方法は?
func myFunc(sender:UIButton,parameter:String){
print(“i am here“)
}
へ
button.addTarget(self, action: #selector(classname.myFunc(_:)), forControlEvents: UIControlEvents.TouchUpInside))
func myFunc(sender:UIButton){
print(“i am here“)
}
それは不可能です。回避策を使用する必要があります。
button.addTarget(self, action: #selector(classname.myFunc(_:)), forControlEvents: UIControlEvents.TouchUpInside))
func myFunc(sender:UIButton){
self.myFunc2(sender, parameter: "My parameter")
}
func myFunc2(sender:UIButton,parameter:String){
}
パラメータがグローバル変数でない限り、これは問題を解決しません。その場合、パラメータ自体を渡す必要はありませんでした。セレクタは発信者を発信者としてのみ提供できます。これ以上何もない。 – kandelvijaya
お返事ありがとうございます。 –
@kandelvijayaどのような問題を言及していますか? OPは何も言及しなかった。とにかく、OPはbutton1がタップされているときに文字列XでmyFunc2を呼び出し、button2がタップされているときに文字列YでmyFunc2を呼び出す可能性があります。だから、このデザインには何も問題はありません。 – Code
あなたは余分なパラメータとして渡したいparameter
という名前のプロパティを追加し、UIButton
のサブクラスを作成することができます。
addTarget()
では、発信者を渡すかどうかのみを選択できます。この場合、発信者はUIButton
です。
それでは、あなたが送信する文字列を取得することができ、サブクラスを使用してaddTarget()
を呼び出す:
func myFunc(sender: customUIButton) {
// do something with sender.parameter
}
は、それはあなたを助けることができると思います。
スイフト2.2このようなことができます。
myUISlider.addTarget(self, action:#selector(self.onSliderValChanged(_:withEvent:)), forControlEvents: .ValueChanged)
func onSliderValChanged(slider: UISlider, withEvent event: UIEvent?) {
}
(http://stackoverflow.com/questions/24814646/attach-parameter-to-button-addtarget-action-in-swift)スイフトでbutton.addTargetアクションにパラメータを添付]の可能な重複 – KTPATEL