2

ストーリーボードの前の昔、私は独自の UIWindow インスタンスを で作成することができました-application:didFinishLaunchingWithOptions:

新しい Xcode プロジェクトで使用したい特別なニーズを持つ UIWindow サブクラスがあります。しかし、私のアプリ デリゲート メソッドは空ですが、まだ魔法のように UIWindow があります。

Main.storyboard ファイルがあります。しかし、その中を見ると、UIViewControllerしか見えません。UIWindow への参照はありません。

main.m にも UIWindow についての言及はありません。

誰が UIWindow を作成し、代わりにサブクラスをインスタンス化するよう強制するにはどうすればよいですか?

4

1 に答える 1

2

アプリ デリゲートのウィンドウ プロパティが のnil場合、アプリによってウィンドウが作成されます。

カスタム ウィンドウを作成するwindowには、App Delegate に getter を実装します。

App Delegate のwindowプロパティのドキュメントから:

アプリの Info.plist ファイルに UIMainStoryboardFile キーが含まれている場合は、このプロパティの実装が必要です。幸いなことに、Xcode プロジェクト テンプレートには通常、アプリ デリゲート用に合成されたプロパティの宣言が自動的に含まれています。この合成されたプロパティの既定値は nil です。これにより、アプリは汎用の UIWindow オブジェクトを作成し、それをプロパティに割り当てます。アプリにカスタム ウィンドウを提供する場合は、このプロパティの getter メソッドを実装し、それを使用してカスタム ウィンドウを作成して返す必要があります。

于 2013-10-02T13:02:55.497 に答える