presentViewController de TableViewCell

Tengo un TableViewController, TableViewCell y un ViewController. Tengo un botón en TableViewCell y quiero presentar ViewController conpresentViewController (pero ViewController no tiene una vista en el guión gráfico). Intenté usar:

@IBAction func playVideo(sender: AnyObject) {
        let vc = ViewController()
        self.presentViewController(vc, animated: true, completion: nil)
}

Error: el valor de tipo TableViewCell no tiene miembro presentViewController

Entonces intenté

self.window?.rootViewController!.presentViewController(vc, animated: true, completion: nil)

Error: Advertencia: ¡Intente presentar cuya vista no está en la jerarquía de ventanas!

¿Qué estoy haciendo mal? ¿Qué debo hacer para presentar ViewController desde TableViewCell? Además, ¿cómo puedo pasar datos al nuevo VC de presentación de TableViewCell?

Actualizar:

protocol TableViewCellDelegate
{
   buttonDidClicked(result: Int)
}

class TableViewCell: UITableViewCell {

    @IBAction func play(sender: AnyObject) {
        if let id = self.item?["id"].int {
            self.delegate?.buttonDidClicked(id)
        }
    }
}
----------------------------------------

// in TableViewController

var delegate: TableViewCellDelegate?
func buttonDidClicked(result: Int) {
    let vc = ViewController()
    self.presentViewController(vc, animated: true, completion: nil)
}

Recibo un error: se desaconseja presentar controladores de vista en controladores de vista separados

(Tenga en cuenta que tengo una cadena de NavBar y TabBar detrás de TableView).

También intenté

 self.parentViewController!.presentViewController(vc, animated: true, completion: nil)

Mismo error.

También intentado

self.view.window?.rootViewController?.presentViewController(vc, animated: true, completion: nil)

Mismo error

Respuestas a la pregunta(3)

Su respuesta a la pregunta