https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson3.html#//apple_ref/doc/uid/TP40015214-CH22-SW1

iOS Developer Libraryのswiftチュートリアル、Connect the UI to Codeの章にてdelegateについて学んでいた際にわからない箇所があったので質問させて頂きます。

import UIKit
    class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var nameTextField: UITextField!
    @IBOutlet weak var mealNameLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        nameTextField.delegate = self

    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }

    func textFieldDidEndEditing(textField: UITextField) {
        mealNameLabel.text = textField.text
    }

    @IBAction func setDefaultLabelText(sender: UIButton) {
        mealNameLabel.text = "Default Text"
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }    

}

以下の部分ですが、ViewControllerがテキストフィールドのdelegateになること意味していると理解しています。

nameTextField.delegate = self

そこで

nameTextField.delegate = ViewController()

と書き換えたところコード上ではエラーがでないのですが、シミュレーターではテキストフィールドに文字を入力し、リターンキーを押してもラベルは変更されなくりました。

このselfは何を参照しているのでしょうか。