2016-09-08 3 views
0

inputFieldが最初のレスポンダになったときに表示されるUIToolbarの配列があります。Swiftで#selectorを使用してパラメータを持つ関数を呼び出す方法はありますか

//... code 
toolBar.items = [ 
      UIBarButtonItem(title: "Button 1", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(myFunction))] 

myInputField.inputAccessoryView = toolBar 

上記の例のパラメータmyFunctionを呼び出すことは可能ですか?

のような何か... UIButtonと同様に

... #selector(myFunction(someParameter))) 

答えて

1

、パラメータがUIBarButtonItemtag属性を経由して渡すことができます。ボタンをタップする

override func viewDidLoad() { 
    super.viewDidLoad() 

    let toolBar = UIToolbar() 
    let firstButton = UIBarButtonItem(title: "Button 1", style: UIBarButtonItemStyle.Done, target: self, action: #selector(myFunction)) 
    let secondButton = UIBarButtonItem(title: "Button 2", style: UIBarButtonItemStyle.Done, target: self, action: #selector(myFunction)) 
    firstButton.tag = 1 
    secondButton.tag = 2 
    toolBar.items = [ firstButton, secondButton ] 
    toolBar.sizeToFit() 
    textField.inputAccessoryView = toolBar 
} 

func myFunction(sender: UIBarButtonItem) { 
    print("Tapped: \(sender.tag)") 
} 

は、この例では、ボタンのタグを出力します。あなたの助けのための

Tapped: 1 // Tap button 1 
Tapped: 2 // Tap button 2 
+1

おかげで多くのことを。 –

関連する問題