故事板中的根视图控制器

时间:2012-12-25 17:16:42

标签: iphone objective-c ios cocoa-touch uiview

我正在玩一个单窗口模板。我有一个经典的MainStoryboard.storyboard文件,我只有一个视图控制器(默认情况下是一个初始视图控制器

我所做的是尝试实现此example的行为,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;
}

我做错了什么?

1 个答案:

答案 0 :(得分: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;