目前我正在使用Xamarin表单来创建Android和iOS。现在我使用OAuth2.0进行登录功能。所以我在Xamarin iOS项目中创建了一个视图控制器。在AppDelegate类中,我从FinishedLaunching方法调用我的控制器视图。
像:
var mainController = new ViewController(); // Your view controller here
mainController.ViewDidLoad();
在ViewDidLoad中编写OAuth2.0的逻辑并使用了
this.PresentViewController(authGui, true, null)
。但在我的项目中,它没有重定向到页面并给出以下警告
Warning: Attempt to present <UINavigationController: 0x7fde4a9d6800> on
<ViewController: 0x7fde4a53f9d0> whose view is not in the window hierarchy!
答案 0 :(得分:0)
无需手动触发ViewDidLoad()
事件。我们假设您使用空白应用模板。您应该设置Window
&#39; RootViewController
来显示它,然后ViewDidLoad()
事件将会触发。有关更多详细信息,请阅读有关iOS UIViewController的this documentation,另请参阅this post有关UIViewController的生命周期。
将此mainController
带入窗口后,您可以使用this.PresentViewController(authGui, true, null)
在屏幕上显示 OAuth视图。
Authenticating Users with an Identity Provider告诉您如何在每个平台上实施 OAuth ,您应该仔细阅读。除了在iOS上,如果要重定向回应用,请在Info.plist
中设置自定义网址。当它返回时,将调用事件OpenUrl()
,在AppDelegate.cs
中覆盖它。