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 黑屏的主要内容,如果未能解决你的问题,请参考以下文章