swift ボタンを押した時、delegate通知させるはずがボタンが反応しない
今、表示したボタンを押したらdelegateパターンを使いGameSceneクラスのtouchUpButton()が呼び出されるようにしたいのですがその通りに動きません。
デリゲートのあたりは間違えていないと思い、多分upButton.addtargetの部分が
間違えている気がするのですが、修正方法がわかりません。
修正方法を教えて欲しいです。
よろしくお願いします。
import UIKit
import SpriteKit
protocol touchButtonDelegate{
func touchUpButton()
}
class Button: NSObject {
var delegate:touchButtonDelegate?
func createUpButton() -> UIButton{
let upButton = UIButton(type: UIButtonType.Custom)
upButton.setImage(UIImage(named: "UPButton"), forState: UIControlState.Normal)
upButton.frame = CGRectMake(60, 200, 70, 70)
upButton.addTarget(self, action: #selector(Button.pushUpButton), forControlEvents: .TouchUpInside)
return upButton
}
func pushUpButton(){
delegate?.touchUpButton()
}
}
import SpriteKit
import UIKit
class GameScene: SKScene,touchButtonDelegate{
override func didMoveToView(view: SKView) {
/* Setup your scene here */
createButton()
}
func createButton(){
let button = Button()
button.delegate = self
let upButton = button.createUpButton()
self.view?.addSubview(upButton)
}
func touchUpButton() {
print("文字表示しました")
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}