iOS Passe os dados de volta do viewController2 para o viewController 1 com o presentModalSegue

Eu tenho o viewController1 que faz um modal seguir para o meu viewController2, mas o

O viewController2 está embutido em um controlador de navegação

porque eu preciso da barra de navegação lá.

Eu implementei um protocolo para enviar os dados de volta do viewController2 para o viewController1, mas ele não funciona. Aqui está o meu código:

protocol writeValueBackDelegate {
    func writeValueBack(value: String)
}

class viewController1: UITableViewController, writeValueBackDelegate {
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "SelectAddress"{
            if let dest = segue.destinationViewController as? MapAddressViewController{
                dest.delegate = self
            }
        }

    }
}

No viewController2, tenho o seguinte:

class viewController2: UIViewController{
    var delegate: writeValueBackDelegate?

@IBAction func TaskOneClick(sender: AnyObject) {
        delegate?.writeValueBack(txtAddress!.text!)
        self.navigationController?.popViewControllerAnimated(true)
    }
}

Eu não sei por que, mas ele funciona apenas se eu remover o controlador de navegação do meu secondviewController e fizer as etapas do viewController 1 para o viewController 2 diretamente, mas preciso do controlador de navegação para mostrar a barra de navegação.

Você sabe por que isso está acontecendo? ou Por que estou indo mal?

questionAnswers(2)

yourAnswerToTheQuestion