【问题标题】:error Storyboard doesn't contain a view controller with identifier错误故事板不包含带有标识符的视图控制器
【发布时间】:2015-02-21 17:14:42
【问题描述】:

我收到了错误:

由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'Storyboard () 不包含带有标识符的视图控制器 'SBMenu''

在我的 AppDelegate 上,我检查用户是否已连接并启动:

  • 如果用户尚未连接,则故事板 ID 为“SBLogin”的视图控制器
  • 如果用户已连接,则使用故事板 ID 为“SBMenu”的拆分视图控制器

我使用 xcode 6.1.1,sdk 8.1,部署目标 7.0
在模拟器 iOS 8.1 上,一切都很好,我没有收到错误。
在模拟器 iOS 7.0.3 或 7.1 上,我收到错误

代码:

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

//...

if(self.token != nil){
    //crash
    self.viewController = (UIViewController *)[mainSB instantiateViewControllerWithIdentifier:@"SBMenu"];
}else{
    //don't crash
    self.viewController = (UIViewController *)[mainSB instantiateViewControllerWithIdentifier:@"SBLogin"];
}

self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
[self.window setRootViewController:self.viewController];
[self.window setBackgroundColor:[UIColor whiteColor]];
[self.window makeKeyAndVisible];

return YES;
}

我已经查看了其他帖子中的提示:

  • 只有一个故事板
  • 本地化中只有“基础”
  • 故事板 ID 已正确设置
  • 在构建之前测试从模拟器中删除应用程序
  • 清理项目

【问题讨论】:

  • 你能展示你的代码实例化mainSB吗?在目标的“部署信息”中的“主界面”下显示什么? (另外,除了在 Interface Builder 中检查视图控制器的 ID“SBMenu”,尝试实际删除 ID 并重新键入它,包括点击 return,然后重新构建...)
  • 从那里文档:“唯一标识故事板文件中的视图控制器的标识符字符串。您在配置故事板文件时在 Interface Builder 中设置给定视图控制器的标识符。此标识符不是视图控制器对象本身的属性,仅由情节提要文件用于定位视图控制器。”您是否在 viewController 中设置了标识符 SBMenu
  • @MattGibson 实例化 mainSB 的代码: UIStoryboard *mainSB = [UIStoryboard storyboardWithName:@"Main" bundle:nil];在“主界面”下:字段为空,当我将其设置为 Main 时,我得到“无法为 UIMainStoryboardFile 'Main' 实例化默认视图控制器 - 也许未设置指定的入口点?” -> 入口点未设置,因为我想选择它。
  • @MattGibson 我还测试了删除、重新输入、回车(代码和情节提要也发生了变化)、在模拟器上删除应用程序、清理、重建 -> 我遇到了同样的问题
  • @Zaph 不是标识符,而是故事板 ID,我在一些帖子上读到:“pre xcode 4.4 Identifier, post xcode 4.5 Storyboard ID”。

标签: ios objective-c xcode


【解决方案1】:

This will only work if you are using Storyboard(s).

你需要做的是进入你的故事板,找到你的“SBMenu”类的视图控制器。

打开侧面板,找到这个:

寻找写有Storyboard ID 的框。确保您的 SBMenu 类在该框内有 SBMenu,并且还要检查您的 SBLogin 类。

希望对你有帮助!

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,但是使用 UISplitViewController,经过数小时的搜索,我发现禁用尺寸类可以解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-05
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 2016-01-04
      • 2015-05-18
      • 1970-01-01
      相关资源
      最近更新 更多