 
     // MARK: Navigation
 
+    private func recoverNavigationDelegate() {
+        if let originalNavigationControllerDelegate = originalNavigationControllerDelegate {
+            navigationController?.delegate = originalNavigationControllerDelegate
+        }
+    }
+
     override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
 
         guard let identifier = segue.identifier else {

            originalNavigationControllerDelegate = navigationController?.delegate

            navigationController?.delegate = contactsSearchTransition
        }

        func recoverNavigationDelegate() {
            if let originalNavigationControllerDelegate = originalNavigationControllerDelegate {
                navigationController?.delegate = originalNavigationControllerDelegate
            }
        }

        switch identifier {

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)

        recoverNavigationDelegate()
    }

    // MARK: Actions
