2016-02-10 4 views
0

Я программно создал кнопку в своем основном классе и передал экземпляр игрового класса (gameSCNScene - где лежит основная часть логики игры). Внутри этого экземпляра игрового класса есть действие для кнопки, но когда я нажимаю кнопку, я получаю сообщение об ошибке - Unrecognized selector.Непризнанный селектор, отправленный в экземпляр 0x13d65ccf0 - Swift

class GameViewController: UIViewController, SCNSceneRendererDelegate { 

var gameSCNScene: GameSCNScene! 
override func viewDidLoad() { 
    super.viewDidLoad() 

    let scnView = self.view as! SCNView 
    scnView.delegate = self 

    // Create my game scene instance 
    gameSCNScene = GameSCNScene(currentview: scnView) 

    // Make button 
    makeButtonsUI(gameSCNScene) 
    } 

func makeButtonsUI(gameSCNScene: GameSCNScene) { 

    let image = UIImage(named: "art.scnassets/addBtn.png") as UIImage? 
    let button = UIButton(type: UIButtonType.System) as UIButton 
    button.frame = CGRectMake(100, 100, 100, 100) 
    button.setImage(image, forState: .Normal) 
    button.addTarget(self, action:("gameSCNScene.addCube:"), forControlEvents:.TouchUpInside) 
    self.view.addSubview(button) 

} 

Функция кнопки внутри моего экземпляра gameSCNScene

func addCube(sender:UIButton) { 
    //Code here 
} 
+2

Я не уверен, но вы можете попробовать это 'button.addTarget (gameSCNScene, действие :("addCube:"), forControlEvents: .TouchUpInside)' – Breek

+0

Отлично, что работает спасибо – JeremyRaven

ответ

6

Строка кода, где вы добавляете цели неправильно. Это:

button.addTarget(self, action:("gameSCNScene.addCube:"), forControlEvents:.TouchUpInside) 

Должно быть:

button.addTarget(gameSCNScene, action:("addCube:"), forControlEvents:.TouchUpInside) 
Смежные вопросы