从 App Delegate 打开导航控制器
Open Navigation Controller from App Delegate
我已经实施了一个 URL 方案,用于在付款后重定向回我的应用程序。当网页直接返回我的应用程序时,该应用程序应在当前视图 上打开一个导航控制器。 (所以打开模式)。
如何从 func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool
方法中的 AppDelete 执行此操作?
提前致谢!
您是使用故事板还是在委托中手动创建 window?如果您有权访问 window,您可以这样做:
window?.rootViewController?.present(yourViewController, animated: true, completion: nil)
否则,它应该适用于所有情况:
UIApplication.shared.keyWindow?.rootViewController?.present(yourViewController, animated: true, completion: nil)
如果提交请求的视图控制器是应该显示模式的视图控制器,我建议采用不同的方法。我建议在通知中心定义一个通知,用于通知当前视图控制器。
在您的视图控制器中,调用通知中心方法之一,例如 addObserver(forName:object:queue:using:)
以观察您的通知。
然后,当您获得预期的 URL.
时,从您的应用程序委托的 application(_:open:options:)
实现中调用 Notification
方法,例如 post(name:object:)
我已经实施了一个 URL 方案,用于在付款后重定向回我的应用程序。当网页直接返回我的应用程序时,该应用程序应在当前视图 上打开一个导航控制器。 (所以打开模式)。
如何从 func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool
方法中的 AppDelete 执行此操作?
提前致谢!
您是使用故事板还是在委托中手动创建 window?如果您有权访问 window,您可以这样做:
window?.rootViewController?.present(yourViewController, animated: true, completion: nil)
否则,它应该适用于所有情况:
UIApplication.shared.keyWindow?.rootViewController?.present(yourViewController, animated: true, completion: nil)
如果提交请求的视图控制器是应该显示模式的视图控制器,我建议采用不同的方法。我建议在通知中心定义一个通知,用于通知当前视图控制器。
在您的视图控制器中,调用通知中心方法之一,例如 addObserver(forName:object:queue:using:)
以观察您的通知。
然后,当您获得预期的 URL.
时,从您的应用程序委托的application(_:open:options:)
实现中调用 Notification
方法,例如 post(name:object:)