Xamarin.ios 从xamarin Ios中的应用程序代理导航时出现黑色窗口
导航到视图控制器后,我看到一个黑色窗口。我的应用程序正在从OpenUrl方法调用来自应用程序委托的页面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
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
变量?是的,我添加了@Nerkyatorprivate 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
,就像您的示例一样(很抱歉没有提供一个工作示例,但我现在无法尝试,希望这能给您一个想法)