2017-09-28 5 views
1

J'ai mis en place un schéma d'URL pour la redirection vers mon application après paiement. Quand une page Web renvoie directement à mon application, l'application doit ouvrir un contrôleur de navigation sur la vue actuelle. (Alors ouvrez le modal).Open Navigation Controller de l'application Delegate

Comment faire cela à partir de l'AppDelete dans le func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool -method?

Merci d'avance!

+0

Possible duplicata de [Contrôleur de vue d'ouverture du délégué de l'application en utilisant swift] (https://stackoverflow.com/questions/30592521/opening-view-controller-from-app-delegate-using-swift) – the4kman

+0

@ the4kman Salut, les différents est que je veux l'ouvrir sur ma vue actuelle. –

+0

Quelle est la version que vous visez? est-il plus élevé que iOS 9? –

Répondre

1

Si le contrôleur de vue qui a soumis la demande est celle qui devrait afficher le modal, je proposerais une approche différente. Je suggère de définir une notification dans le centre de notification que vous utilisez pour notifier le contrôleur de vue en cours.

Dans votre contrôleur de vue, appelez l'une des méthodes du centre de notifications telles que addObserver(forName:object:queue:using:) pour observer votre notification.

Appelez ensuite une méthode Notification comme post(name:object:) à partir de l'implémentation de votre délégué d'application de application(_:open:options:) lorsque vous obtenez l'URL attendue.

2

Utilisez-vous un storyboard ou créez-vous manuellement la fenêtre dans le délégué? Si vous avez accès à la fenêtre, vous pouvez le faire:

window?.rootViewController?.present(yourViewController, animated: true, completion: nil) 

Sinon, il devrait fonctionner dans tous les cas:

UIApplication.shared.keyWindow?.rootViewController?.present(yourViewController, animated: true, completion: nil) 
+0

Salut à tous! J'utilise des storyboards. Est-il possible de le faire avec une transition modale? –

+0

C'est une transition modale. Vous pouvez le personnaliser en faisant 'yourViewController. modalTransitionStyle' ou personnalisez 'yourViewController. modalPresentationStyle' –