Xcode 5模拟器显示空白白屏问题

3
我刚安装了Xcode 5(或最新版本)并创建了一个新项目。我创建了一个故事板,添加了一个标签,但是当我在iPhone模拟器中打开应用程序时,我只能看到一个带有状态栏的空白屏幕。我做错了什么吗?
我使用的是OS X 10.9.1 Mavericks。

它是一个模拟器,不是仿真器。 - nhgrif
好的,抱歉,那个已经改变了。我不知道区别。 :) - j.m.g.r
你有一个空的视图,你期望看到什么? - Dimitar Marinov
@dimimpou,你的回答基本上与15分钟前发布的答案完全相同,并且仍然建议从头开始重新启动项目。 - nhgrif
@nhgrif在他的问题中说:“我做错了什么?”为什么你要这么个人化?还要记住,我已经尝试过你的答案,但它不起作用。它在启动时抛出异常。 - Dimitris Bouzikas
显示剩余2条评论
7个回答

3
我知道我来晚了,但是解决这个问题的方法非常简单,甚至在苹果自己的教程中展示过。
假设您从“空项目”开始,从头创建了一个故事板,并将其设置为主界面,则需要删除AppDelegate.m的第一个方法中的几行代码。
这样:
    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;

应变成这样:

仅应该是这样:

    return YES;

@CarlLee 来自苹果教程的内容:“XYZAppDelegate.m”文件中的第一个方法包含一些代码行,用于设置应用程序窗口并为其赋予您第一次运行应用程序时看到的白色背景颜色。”简单来说,第二行将窗口的背景设置为白色,导致整个应用程序都被覆盖了一层白色的“涂料”。删除它将删除那个“涂料”。我不知道苹果留下这段代码的原因,也说不清楚原因。坦率地说,他们在模板中放了很多不必要的东西。 - Ruiz

2
我假设您已经开始了一个空项目,没有使用storyboard,之后在创建项目后,您创建了一个storyboard文件。
您需要告诉您的应用程序加载哪个storyboard文件。
在下面的屏幕截图中,您需要点击“主界面”下拉菜单,并选择要启动应用程序的storyboard。
这是您目标的“常规”选项卡下的“部署信息”部分。
您还需要在AppDelegate.m中添加几行代码。它应该像这样:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YOUR_STORYBOARD_NAME" bundle:[NSBundle mainBundle]];
    UIViewController *vc =[storyboard instantiateInitialViewController];
    self.window.rootViewController = vc;
    [self.window makeKeyAndVisible];
    return YES;
}

@Stickman803 我忘记了一个小细节,需要检查一下编辑。 - nhgrif
1
好的,我尝试了一下,现在当我尝试运行它时,它显示“构建失败”。 - j.m.g.r
不,.storyboard 应该是不必要的。 - nhgrif
文件 '/Users/ME/Desktop/Test/Test/Test-Prefix.pch' 自从预编译头文件 '/Users/ME/Library/Developer/Xcode/DerivedData/Test-ayeofzcbmsldmigqjzokqzydldwj/Build/Intermediates/PrecompiledHeaders/Test-Prefix-feablxjkhtpjkuanpsmvybmtdpif/Test-Prefix.pch.pch' 构建以来已被修改。 - j.m.g.r
1
好的。谢谢你的帮助。我想我需要重新启动项目并转移我的代码。虽然这只是一个测试项目,但我对此感到满意。你的答案可能会帮助将来遇到同样问题的人。 - j.m.g.r
显示剩余9条评论

2

您的项目没有视图控制器。当您创建项目时,应该选择“单视图项目”,这将为您创建一个视图控制器。在这种情况下,您就能够看到标签。


你说他应该这样做。如果你真的认为这是最好的解决方案,那么你的回答应该更明确地说明“为了解决这个问题,请将项目重新启动为单视图应用程序。”如果你加上这个,我会取消踩踏...但我不会给你点赞。抛弃一个项目并重新开始是一个荒谬的建议,当实际解决方案只需要改变一个下拉菜单的选择。 - nhgrif
这真的起作用了!谢谢。我只希望有一种比重新启动整个项目更简单的方法来完成这个任务。 - j.m.g.r
什么是更简单的方法?我仍然有我的原始项目。 - j.m.g.r

1

修复方法:

如果您想要修复这个问题,请删除属性“Main nib file base name”。该属性可以在您的目标的“信息”选项卡中找到。

enter image description here

问题:
看起来您在创建应用程序时选择了“空应用程序”模板。然后您从用户界面部分添加了Storyboard。当您添加标签并运行应用程序时,您无法看到“Hello, World”标签,因为应用程序在应用程序启动结束时没有根视图控制器。
请尝试创建一个“单视图应用程序”。

那么...为什么这个答案会得到赞?它并没有比Reinhard的答案更有帮助,而且是在他的答案之后发布的,仍然建议完全从头开始,这是毫无必要的。 - nhgrif
@nhgrif 为什么你对我的回答有问题?这是在iOS开发中开始时常见的明显问题,可能会有所帮助。 - Dimitris Bouzikas
我已经回答了那个问题。我的问题有两个方面。你的答案没有比Reinhard的答案多出任何东西。你的答案建议放弃项目并从头开始。这里唯一的共同问题是不知道如何在不重启项目的情况下修复它。 - nhgrif

1
我想在这个帖子中发表一些意见并阐明此事。我自己正在处理我的第一个项目,但是遇到了白屏问题。我找到了这篇文章,它有所帮助,但也有所不足,但这就是对我有效的方法。每个人都说得没错,但实际上我运行的是9.2模拟器,而我只安装了9.1(如果您需要帮助,请转到Xcode>首选项>下载并下载适当的软件包)。一旦我做到了这一点,我运行了模拟器并得到了白屏。现在我的白屏上有运营商和电池图标。要在模拟器中修复此问题:硬件>设备>9.1,然后重新启动,然后它就可以工作了...
希望这能有所帮助。
SithAdmin

0

我曾经遇到过同样的问题(空白屏幕),原因是一个非常愚蠢的错误。实际上,元素出现了又很快消失了。 我的错误在于我没有在Main.storyboard中创建它(而是在LaunchScreen.storyboard中创建),所以它显然在启动几秒钟后就消失了。 这很愚蠢,但至少可以快速检查:在Main中创建视图,而不是在LaunchScreen中...


0

点击 "Main.storyboard" -> 在右侧的 "Interface Builder Document" 中取消选中 "Use Auto Layout", "Use Size Classes" 和 "Use as Lunch Screen"。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接