2017-09-17 30 views
0

スウィフト4の非常に基本的な振り子ダイスアプリには2つの機能があります。最初はランダムなダイス関数を実行します。しかし、実際にはIBActionであるので、2番目のボタンは送信側の引数を必要とするので、どのボタンが押されているかを知る必要があります。motionEndedでボタンアクションを実行する方法は?

シェイク中にmotionEndedに偽のボタンを追加するにはどうすればよいですか?

// MARK: -- Outlets and Actions 
    @IBOutlet weak var diceImageView1: UIImageView! 
    @IBOutlet weak var diceImageView2: UIImageView! 


    @IBAction func rollButtonPressed(_ sender: UIButton) { 

     updateDiceImages() 
     updateRollButton(sender) 

    } 

...

override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) { 
     updateDiceImages() 

     // how to send sender from motionEnded? 
     rollButtonPressed(magic sender needed) 

     // or another function that also needs the UIButton sender 
     updateRollButton(same magic sender needed) 
    } 
} 

答えて

0

IBActionsender引数を持っている、あなたはそれを削除することができますする必要はありません。

@IBAction func rollButtonPressed() 

機能を変更した後、あなたがクラッシュを防ぐためにInterface Builderの内部アクションを再配線する必要があることに注意してください。

関連する問題