Search code examples
flutterflutter-navigationflutter-ios

Go back to Flutter app from native controller


I am opening the new contact screen in iOS from my native side like that:

let contact = CNMutableContact.init()
let controller = CNContactViewController.init(forNewContact:contact)
controller.delegate = self
DispatchQueue.main.async {
    let navigation = UINavigationController .init(rootViewController: controller)
    let viewController : UIViewController? = UIApplication.shared.delegate?.window??.rootViewController
    viewController?.present(navigation, animated:true, completion: nil)
}

The screen opens correctly, the problem is that I can't go back to the Flutter app. There is a cancel button but nothing happens when I click on it.

How to go back from a native controller?


Solution

  • How to fix this issue: add the following method the class (which already extends from CNContactViewControllerDelegate:

    public func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) {
        viewController.dismiss(animated: true, completion: nil)
    }