Xcode - UIStoryboard 黑屏

Posted

技术标签:

【中文标题】Xcode - UIStoryboard 黑屏【英文标题】:Xcode - UIStoryboard black screen 【发布时间】:2013-01-04 08:06:54 【问题描述】:

我正在使用UIStoryboard。我创建了我的应用程序空,然后我添加了一个故事板。情节提要在项目设置中设置为主情节提要,在 Info.plist 中也设置为“主情节提要文件基础名称”。

我的应用委托只返回 YES 而没有任何其他代码。

我的main.m 包含这行代码:

return UIApplicationMain(argc, argv, nil, NSStringFromClass([ARGAppDelegate class]));

我在控制台中收到此消息:

应用程序窗口应该有一个根视图控制器 应用程序启动结束

我的视图控制器在 UIStoryboard 中,作为初始视图控制器。

只是想知道我在这里做错了什么......

我的 AppDelegate 代码:

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

这就是我拥有的所有代码,如果您使用情节提要,则不需要创建窗口对吗?

感谢您的帮助,不胜感激!


更新:

我实际上更改了我的 AppDelegate 代码,仍然没有任何区别:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    // Override point for customization after application launch.

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

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
    UIViewController *initViewController = [storyboard instantiateViewControllerWithIdentifier:@"ARGViewControllerID"];

    NSLog(@"%@", initViewController); // Returns a valid ARGViewController object

    [self.window setRootViewController:initViewController];
    [self.window makeKeyAndVisible];
    [self.window makeKeyWindow];

    return YES;

【问题讨论】:

当我从头开始遇到这样的事情时,我发现与“已知商品”进行比较最容易 - 在这种情况下,尝试将您的应用与“单页应用”的自动生成的应用进行比较而不是“空”,看看有什么不同可能导致您的问题。 @Chris 我已经做到了,不过我没有发现任何问题 好吧,我假设存在一些差异(因为单页应用程序不会这样做) - 尝试对其中一个或另一个应用更改以使项目看起来更相似,直到找到导致的更改问题。 @Chris 我没有什么不应该工作的意思,好的,我会这样做,但是我的另一个项目不使用情节提要。另外,我认为除了应用程序委托之外没有任何值得注意的区别,在这个项目中它是空的(除了返回 YES) 你能从AppDelegate 添加你的applicationDidFinishLaunching 方法吗?int main(int argc, char *argv[]) 与此错误无关,它可能显示它在这里,因为尚未捕获异常,这是最后一个可以被抓到的地方。 【参考方案1】:

Application windows are expected to have a root view controller at the end of application launch

听起来您没有在故事板的开头嵌入导航控制器

【讨论】:

我认为故事板不需要导航控制器 不知道,我对故事板没有经验 是的,去编辑器并嵌入导航控制器,然后离开。当你习惯它时,它会更快、更少的代码。【参考方案2】:

-applicationDidFinishLaunching:withOptions: 没有在代码中设置窗口或情节提要时,系统会在 info.plist 中查找默认 XIB 或情节提要的下一个位置。项目信息中的“默认故事板”字段为空,或指向不存在的 .storyboard 文件。单击树中的项目,然后单击“摘要”选项卡,并在字段中填写故事板文件的名称。

【讨论】:

我在任何地方都看不到“默认情节提要”字段。 这是我的想法,但不能确定。 我的错,它是“摘要”标签。立即编辑 在项目信息中,“主情节提要文件基本名称”已正确设置。总之,“主故事板”设置正确:) 哼。我其实很茫然。在代码中设置一个视图控制器只是为了看看它是否消失。 (这就是我讨厌故事板的原因)【参考方案3】:

在浏览论坛和问题并使用代码后无法找到解决方案,我切换到 xibs。自从 4 小时前我进行过渡以来,我就对它感到满意。我希望我再也不用看到另一个充满错误且难以使用的故事板文件了!

【讨论】:

以上是关于Xcode - UIStoryboard 黑屏的主要内容,如果未能解决你的问题,请参考以下文章

XCode8:UIStoryboard 更新到最新布局

呈现视图控制器时出现黑屏

为啥使用故事板推送视图控制器显示黑屏

更改 Storybord 视图控制器时 iOS 13 中的黑屏

Xcode 5,xib 本地化导致手机黑屏

关于xcode11新建项目黑屏那点 blackj-01