【问题标题】:Xcode - UIStoryboard black screenXcode - UIStoryboard 黑屏
【发布时间】: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[]) {} 与此错误无关,它可能显示它在这里,因为尚未捕获异常,这是最后一个可以被抓到的地方。

标签: objective-c ios uiviewcontroller uistoryboard


【解决方案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 小时前我进行过渡以来,我就对它感到满意。我希望我再也不用看到另一个充满错误且难以使用的故事板文件了!

【讨论】:

    猜你喜欢
    • 2015-02-28
    • 2015-01-16
    • 2014-11-16
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多