1

シングルウィンドウテンプレートで遊んでいます。クラシックMainStoryboard.storyboardファイルがあり、View Controllerが1つしかありません(デフォルトではすべてInitial View Controllerです)

私がしていることは、このの動作を実装しようとすると、Xcodeはこれを教えてくれます:

Application windows are expected to have a root view controller at the end of application launch

何が間違っているのかわかりません。これが私が新しいものを作成するコードの一部ですUIWindow

UIWindow *overlayWindow = [[UIWindow alloc] init];
    overlayWindow = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectZero];
    overlayWindow.hidden = NO;

そしてもちろん、私appDelegateはこれから始めます:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    return YES;
}

私は何が間違っているのですか?

4

1 に答える 1

2

ウィンドウキーを作成して、

[overlayWindow makeKeyAndVisible];

リンクしたのとまったく同じ例で提案されているように。

編集

これはあなたが使用しているコードです

UIWindow *overlayWindow = [[UIWindow alloc] init];
overlayWindow = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectZero];
overlayWindow.hidden = NO;

最初の行は役に立たず、潜在的に警告を引き起こしている行です。あなたはUIWindowインスタンスを作成していて、それを次の行に捨てるよりも。

それを削除して、次のようにします。

UIWindow *overlayWindow = [[ACStatusBarOverlayWindow alloc] initWithFrame:CGRectZero];
overlayWindow.hidden = NO;

また、新しく作成したウィンドウにルートビューコントローラを割り当てる必要があります。

overlayWindow.rootViewController = self.window.rootViewController;
于 2012-12-25T19:07:07.833 に答える