2017-04-21 122 views
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中:

this is the Property of the page This is the image of the View which i want to call

+0

你的例子似乎類似於[默認示例](HTTPS: //developer.xamarin.com/recipes/cross-platform/app-links/app-links-ios/)所以,你有沒有正確設置'navigationController'變量' FinishedLaunching'? – Nerkyator

+0

是的,我加了@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

+0

呃... ...不能嘗試,但現在:在故事板集'NavigationController'作爲初始視圖控制器和嵌入您登錄的UIViewController它。在'OpenUrl'方法中,只需將'this.Window.RootViewController'強制轉換爲'UINavigationController'和'PushViewController'就好像你的示例一樣(抱歉沒有提供一個工作示例,但我現在不能嘗試,我希望這會給你一個想法) – Nerkyator

回答

0

本準則解決了我的問題

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