从xib加载时iOS黑屏

标签 ios objective-c xcode ios8 xcode6

我正在尝试使用 .xib 文件加载应用程序。不知道为什么我的屏幕变黑了...

我的 AppDelegate 代码:

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

    MainViewController *mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];

    self.window.rootViewController = mainViewController;

    [self.window makeKeyAndVisible];

    return YES;
}

最佳答案

当您手动构建应用程序(不使用 Storyboard )时,您需要创建自己的窗口。

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = mainViewController;
[self.window makeKeyAndVisible];

使用 Storyboard 时,应用程序会在调用 application:didFinishLaunchingWithOptions: 之前完成整个过程。 .这就是为什么在 iOS 5 中添加了 UIApplicationDelegate.window 并且许多现代教程没有向您展示设置步骤的原因。在此之前,拥有该属性(property)只是常见的做法。

关于从xib加载时iOS黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26146663/

相关文章:

ios - Xcode - 存档产品转到其他项目而不是 iOS 应用程序

ios - 添加 SKViaPoint 时 SKMaps 崩溃

ios - UIPageViewController 不会释放最后显示的对话框

ios - WKWebView 崩溃 iOS9

objective-c - 如何检测鼠标是否在 cocoa 窗口外?

objective-c - 绘制前不要清除上下文

ios - MKMapView在重新加载时崩溃

ios - 如何重置 NSTextStorage 中的属性

ios - 无法从 NSMutableArray 中正确检索对象

ios - 更改iOS 7中的引用计数?