2017-02-04 2 views
0

フォーム依存サービスでビューコントローラを表示しようとしています。しかし、私は黒い画面が表示され続けます。私はSwiftをXcodeで使用してもXamarinを使用しないと動作させることができます。InstantiateViewController()コールでストーリーボードからロードしないビューを表示

コントローラのアウトレットもロードされません。奇妙なことがvc.Viewへの変更が表示されます。それは、空のビューを作成していて、ストーリーボードから実際にロードしていないかのようです。

var storyboard = UIStoryboard.FromName("StoryboardView", null); 
var controller = storyboard.InstantiateViewController("StoryboardViewVC"); 

var window = UIApplication.SharedApplication.KeyWindow; 
var vc = window.RootViewController; 
while (vc.PresentedViewController != null) 
{ 
    vc = vc.PresentedViewController; 
} 

vc.PresentViewController(controller, true, null); 

問題が解決しないLoadViewIfNeeded()への呼び出しを追加:次のように

私のコードです。

ストーリーボードとコントローラの名前が一致していることを再確認しました。私は答えを探しましたが、私が見つけているのは、ストーリーボードやペン先からコントローラをロードするコードを書いていないことです。

+0

"StoryboardViewVC"をRootViewControllerにしますか?その場合:window.RootViewController = controller。それ以外の場合は、 whileループの目標は何ですか?それは私に邪魔しているように見えます。それを取り除こうとしましたか? – xleon

+0

@xleonいいえ、私はビューコントローラをモーダルにしたいと思います。これを行うには、コントローラーからのプレゼンテーションが必要です。これは依存関係サービスを介してXamarin.Formsから呼び出され、フォームは私の知る限り、ページが使用するVCを公開しません。私は手を少し汚くし、最も適切なVCを自分自身、したがってwhileループを見つける必要があります。それでも、これは、コントローラが提示される前からストーリーボードからロードされていないように見える理由を説明していません。 – BergQuester

答えて

0
var controller = (UIViewController)storyboard.InstantiateViewController("StoryboardViewVC"); 

ビューをロードすることができるビューに割り当てたクラスを使用します。

+0

インスタントイメージメソッドの戻り値をキャストすることについて話していますか? – BergQuester

関連する問題