今、表示したボタンを押したら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 */
}

}