title: How does UIButton addTarget self work?
body: <p>I try figure out why <code>self</code> point to the GameViewController instead of Answer</p>
  
  <p><strong>GameViewController.swift</strong></p>
  
  <pre><code>class GameViewController: UIViewController {
      var gameplay = QuestionsController(colors: colors)
  
      override func viewDidLoad() {
          super.viewDidLoad()
          self.view.addSubview(gameplay.answersController.answers[0].button)
      }
  
      func didPressAnswerButton(sender: UIButton!) {
          sender.setTitle("Im from GameViewController class", forState: .Normal)
      }
  }
  </code></pre>
  
  <p><strong>QuestionsController.swift</strong></p>
  
  <pre><code>class QuestionsController {
      var question: Question
      var answersController: AnswersController
  }
  </code></pre>
  
  <p><strong>AnswersController.swift</strong></p>
  
  <pre><code>class AnswersController {
      var answers = [Answer]()
  
      func prepareAnswers() {
          let answer = Answer()
          answers.append(answer)
      }
  }
  </code></pre>
  
  <p><strong>Answer.swift</strong></p>
  
  <pre><code>class Answer{
      let button: UIButton
  
      func prepareButton() {
          let answerButton = AnswerButton(type: .System)
          answerButton.addTarget(self, action: "didPressAnswerButton:", forControlEvents: .TouchUpInside)
          button = answerButton
      }
  
      func didPressAnswerButton(sender: UIButton!) {
          sender.setTitle("Im from Answer class", forState: .Normal)
      }
  }
  </code></pre>