iOS模拟器显示空白黑屏或白屏

Seb*_*ian 2 objective-c ios

我正在运行一个没有任何问题的项目,但第二个项目不会出现在iOS模拟器中.它显示的内容取决于我的didFinishLaunchingWithOptions方法中的内容AppDelegate.m.

给黑屏:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

给出白屏:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

任何修复的想法?

Ser*_*nko 7

如果您使用.xib:

在第一种情况下,您会看到黑屏,因为您甚至没有创建窗口,在第二种情况下 - 您创建了白色窗口,但没有根控制器.

您需要指定窗口的rootViewController:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    // Your don't need specify window color if you add root controller, you will not see window because root controller will be above window.
    //self.window.backgroundColor = [UIColor whiteColor];

    self.window.rootViewController = [YourViewController new];

    [self.window makeKeyAndVisible];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

如果你使用storyboard留下第一个例子:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

并确保在proj文件中指定了主故事板: 在此输入图像描述

还要确保将故事板中的一个视图控制器设置为初始值: 在此输入图像描述