iphone - Storyboard 中的 Root View Controller

标签 iphone objective-c ios cocoa-touch uiview

我正在玩弄单窗口模板。我有一个经典的 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/

相关文章:

iphone - HTML5 网络应用与原生移动应用

ios 驻留菜单管理左右菜单内容

iphone - 如何在 Objective C 中将好友标记为 Facebook 中的用户帖子

ios - 在 UITableViewController 上推送 UIViewController 时更改后退按钮标题

ios - 按实体索引 Swift 对 NSSortDescriptor 进行排序

iphone - 将 tableView 交换到 UITableViewController 中的另一个 View

iphone - iOS 上的 ImageMagick 圆形扭曲

ios - UIView 动画 block 暂停动画和完成代码

objective-c - 当 NSWindow 指令退出时使 App 失去焦点

ios - WKWebView 是否使用来自 Safari 的 cookie?