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

时间:2014-01-18 14:31:45

标签: ios objective-c

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

给出黑屏:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    return YES;
}

给出白屏:

- (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;
}

有关修复的想法吗?

3 个答案:

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

如果您使用故事板,请留下第一个示例:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    return YES;
}

并确保在proj文件中指定了主故事板: enter image description here

还要确保将故事板中的一个视图控制器设置为初始值: enter image description here

答案 1 :(得分:1)

我在El Capitan上使用XCode V7.3.1,即使是最简单的单视图应用程序,我也可以使用白色屏幕模拟器。我认为控件是在屏幕外显示但不知道为什么。

我通过将模拟器窗口缩小到小于100%来修复它。在模拟器菜单栏上,转到Window-> Scale并选择50或75%,对我来说,控件显示正确布局。

答案 2 :(得分:0)

如果您选择“使用故事板”,那么

是正常的
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    return YES;
}

此时,当你运行它时,你应该看到ViewController的默认视图控制器的视图(如果你没有弄乱故事板文件)。

尝试单击您的故事板,选择控制器,单击其下方黑色条上的第一个图标,然后选择身份检查器(右侧面板上的第3个按钮),检查自定义类是否为Xcode为您创建的现有ViewController,确保它是初始控制器