MonoTouch アプリを作成していて、UISegmentedControl をビューに追加しようとしています (IB を使用せずにプログラムで)。次のエラー メッセージが表示され続けました。
Application windows are expected to have a root view controller at the end of application launch
UISegmentedControl は Window ルート ビュー コントローラーとは関係がないため、これは奇妙です。最後に、コードを変数の初期化まで減らしました。
// This code appears in a class which inherits from UIView
var segmentedControl = new UISegmentedControl ();
このコードを UIViewController から継承するクラスに入れてみましたが、同じ動作が発生しました。AppDelegate に入れてみましたが、それでも同じエラーが表示されました。
注: このコードを実行するときは、iPad デバイスでデバッグしています
遊んだ後、最終的に私が持っているランダムな UIViewController クラスをコメントアウトし、アプリは正常に動作しました。さまざまな UIViewControllers をコメントアウトしようとしましたが、問題なく実行されるたびに、問題と思われるビュー コントローラーは 1 つもありません。持てるView Controllerの数に、ある種の限界に達したかのようです。
これは可能ですか?そうでない場合、何が問題なのですか?
PS これは、ここで提起した以前の問題に関連している可能性があります: UITabBarController を追加する際のエラー
編集
FinishedLaunching メソッド内には、次のコードがあります。
_window = new UIWindow(UIScreen.MainScreen.Bounds);
_window.RootViewController = _navigationController;
_window.MakeKeyAndVisible();
これを iOS バージョン 6.1 で実行しています。
それ以来、UIViewController から継承するクラスだけでなく、任意のクラスをコメントアウトしようとしましたが、アプリは正常に動作します。メモリの問題かも
編集2
これが影響を受けている場所からビューとコントローラーを削除して、それらを再度ビルドし、ビューが UIView から継承されるときにドリルダウンしてみました。UIViewController にそのコードがあり、UIView として使用される (実際には継承しない) クラスがある場合、アプリは問題なく実行されます。UIView からそのクラスを継承するとすぐに、上記のエラー メッセージが表示されます。