2

Monotouch C# を使用して、さまざまな画面を持つ iPhone アプリを作成しています。簡単にするために、私が問題を抱えているコントローラーにつながるいくつかの画面のみを説明します。

私が抱えている問題は、UITabBarControllerから継承するクラスを作成すると、次のエラー メッセージが表示されることです。

アプリケーション ウィンドウには、アプリケーションの起動の最後にルート ビュー コントローラーがあることが期待されます。

私の AppDelegate クラスでは、UIViewController と UINavigationController を初期化します。UIWindow オブジェクトに RootViewController を設定して、次のようにナビゲーション コントローラーを使用します。

var splashController = new SplashController(); // UIViewController
_navigationController = new UINavigationController(splashController);

...

_window = new UIWindow(UIScreen.MainScreen.Bounds);
_window.RootViewController = _navigationController;
_window.MakeKeyAndVisible();

これまで、アプリケーションの実行に問題はありませんでした。しかし、UITabBarController から継承する新しいクラスを作成したところ、上記のエラー メッセージが表示されました。必要に応じてコードを投稿できますが、UITabBarController から継承する空のクラスでアプリケーションを実行しようとしても、同じエラー メッセージが表示されます。

PushViewController 呼び出しをコメントアウトまたは削除することで、コード内でクラスが呼び出されない場合でも、アプリケーションを実行できません。

タブ バー コントローラーの呼び出しは、最終的に次のようになります。

SplashController (UIViewController) > push > HomeController (UIViewController) > push > MenuController (DialogViewController) > push > StatsController (UITabBarController)

ここに欠けている何かが余分にあると思いますが、グーグルで検索した後、問題に対する答えが見つかりませんでした。助けてくれてありがとう

4

2 に答える 2

1

このリンクが役立つと思います

アプリケーションは、アプリケーションの起動の最後にルート ビュー コントローラーを持つことが期待されます

また、plist で初期ビュー コントローラーについて言及していない場合にも発生することがあります。

于 2013-07-27T13:57:08.940 に答える