Xamarin.ios 从xamarin Ios中的应用程序代理导航时出现黑色窗口

Xamarin.ios 从xamarin Ios中的应用程序代理导航时出现黑色窗口,xamarin.ios,navigation,Xamarin.ios,Navigation,导航到视图控制器后,我看到一个黑色窗口。我的应用程序正在从OpenUrl方法调用来自应用程序委托的页面 public override bool OpenUrl(UIApplication app, NSUrl url, string sourceApp, NSObject annotation) { var rurl = new Rivets.AppLinkUrl(url.ToString()); // navController = new UINav

导航到视图控制器后,我看到一个黑色窗口。我的应用程序正在从OpenUrl方法调用来自应用程序委托的页面

 public override bool OpenUrl(UIApplication app, NSUrl url, string sourceApp, NSObject annotation)
    {
        var rurl = new Rivets.AppLinkUrl(url.ToString());
       // navController = new UINavigationController();
        var id = string.Empty;


        if (rurl.InputQueryParameters.ContainsKey("id"))
            id = rurl.InputQueryParameters["id"];

        if (rurl.InputUrl.Host.Equals("products") && !string.IsNullOrEmpty(id))
        {
            // var mainController = new UIViewController();

           // NSUserDefaults.StandardUserDefaults.SetBool(true, "ForgotPwdLinkClicked");
           return true;
        }
        else
        {
            //var c = new ProductViewController();
            // UIApplication.SharedApplication.KeyWindow.RootViewController = c; 
            var c = new UpdatePasswordViewController();
           navigationController.ModalPresentationStyle = UIModalPresentationStyle.OverFullScreen;
           navigationController.PushViewController
                (c, true);
            //// return true ;
            ///*this.Window.RootViewController =
            //    c;*/
           // NSUserDefaults.StandardUserDefaults.SetBool(true, "ForgotPwdLinkClicked");
            return true;
        }
    }
以下是我在XCode中的ViewController设置:


此代码解决了我的问题

 UIStoryboard Storyboard = UIStoryboard.FromName("MainStoryboard", null);// this will bee our storyboard name 
var c = Storyboard.InstantiateViewController("UpdatePasswordViewController") as UpdatePasswordViewController;

您的示例与so类似,您是否在
FinishedLaunching
中正确设置了
navigationController
变量?是的,我添加了@Nerkyator
private UINavigationController navigationController;var rootController=UIStoryboard.FromName(“MainStoryboard”,NSBundle.MainBundle)。实例化视图控制器(“LoginView”);navigationController=new-UINavigationController(rootController){NavigationBarHidden=true};this.Window.RootViewController=navigationController这是navigationController控制器嗯…现在无法尝试,但:在情节提要集
navigationController
中作为初始视图控制器,并将您的登录UIViewController嵌入其中。在
OpenUrl
方法中,只需将
this.Window.RootViewController
转换为
UINavigationController
PushViewController
,就像您的示例一样(很抱歉没有提供一个工作示例,但我现在无法尝试,希望这能给您一个想法)