AlertController no está en la jerarquía de ventanas

Acabo de crear un proyecto de aplicación de vista única con la clase ViewController. Me gustaría mostrar un UIAlertController desde una función que se encuentra dentro de mi propia clase.

Aquí está mi clase con una alerta.

class AlertController: UIViewController {
     func showAlert() { 
         var alert = UIAlertController(title: "abc", message: "def", preferredStyle: .Alert)
         self.presentViewController(alert, animated: true, completion: nil)
     }
}

Aquí está ViewController que ejecuta la alerta.

class ViewController: UIViewController {
   override func viewDidLoad() {
       super.viewDidLoad()  
   }

   @IBAction func showAlertButton(sender: AnyObject) {
       var alert = AlertController()
       alert.showAlert()
   }
}

Esto es lo que obtengo en lugar de una hermosa alerta.

Advertencia: Intente presentar UIAlertController: 0x797d2d20 en Sprint1.AlertController: 0x797cc500 cuya vista no está en la jerarquía de la ventana.

¿Qué tengo que hacer?

Respuestas a la pregunta(2)

Su respuesta a la pregunta