我正在玩弄单窗口模板。我有一个经典的 MainStoryboard.storyboard
文件,我只有 1 个 View Controller (默认情况下是一个 Initial View Controller)
我所做的是尝试实现此 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;
}
我做错了什么?
最佳答案
你应该让你的窗口成为关键并且可见
[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;
你还应该为新创建的窗口分配一个 Root View Controller ,通过
overlayWindow.rootViewController = self.window.rootViewController;
关于iphone - Storyboard 中的 Root View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032599/