0
導航到視圖控制器後,我得到一個黑色窗口。我的應用程序正在從OpenUrl方法的應用程序委託中調用一個頁面。從應用程序委託在Xamarin中導航時出現黑色窗口Ios
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;
}
}
這些都是我的ViewController設置在XCode中:
你的例子似乎類似於[默認示例](HTTPS: //developer.xamarin.com/recipes/cross-platform/app-links/app-links-ios/)所以,你有沒有正確設置'navigationController'變量' FinishedLaunching'? – Nerkyator
是的,我加了@Nerkyator 'private UINavigationController navigationController; var rootController = UIStoryboard.FromName(「MainStoryboard」,NSBundle.MainBundle) .InstantiateViewController(「LoginView」); navigationController = new UINavigationController(rootController){NavigationBarHidden = true}; this.Window.RootViewController = navigationController;' 這是navigationController控制器 – shamnad
呃... ...不能嘗試,但現在:在故事板集'NavigationController'作爲初始視圖控制器和嵌入您登錄的UIViewController它。在'OpenUrl'方法中,只需將'this.Window.RootViewController'強制轉換爲'UINavigationController'和'PushViewController'就好像你的示例一樣(抱歉沒有提供一個工作示例,但我現在不能嘗試,我希望這會給你一個想法) – Nerkyator