【问题标题】:NSInternalInconsistencyException with programatic storyboard segue带有程序故事板segue的NSInternalInconsistencyException
【发布时间】:2016-07-03 12:06:31
【问题描述】:

如下图所示,当我触发我的故事板时,我看到了以下错误

我正在通过以下方式触发转场:

[self performSegueWithIdentifier:@"dayViewDetailSegue" sender:self];

这是我遇到的错误

'NSInternalInconsistencyException',原因:'无法加载 NIB bundle: 'NSBundle (loaded)' with name 'UIViewController-4FQ-FK-WrG' 和目录'Main.storyboardc''

我尝试过的: 打开故事板作为源代码,在其中我可以找到以下内容

<segue destination="4FQ-FK-WrG" kind="presentation" identifier="dayViewDetailSegue" modalPresentationStyle="fullScreen" modalTransitionStyle="coverVertical" id="L8J-7U-DxM"/>

我已经尝试过 clean 和 build directory clean。

user3182143 对问题的回答 - 但仍有问题

  1. 没有
  2. 我没有重命名 Xcode 外部的文件 类对应一个有效的类文件。我也尝试过在情节提要中没有为 VC 声明类文件。
  3. 故事板文件基本名称 = Main
  4. 是 Main.storyboard 位于 Copy Bundle Resources 中。我有 还尝试将其删除并重新添加。

  5. 在我的项目中没有以编程方式实例化 ViewController。

  6. 正确链接到适当的目标

    7.我无法更改此值,因为它是灰色的。有什么建议吗?

  7. 不以编程方式添加或更改 VC。这是第一个 我正在做的与故事板相关的程序化事情 项目(触发segue)

  8. 完成。

【问题讨论】:

    标签: objective-c xcode segue xcode-storyboard


    【解决方案1】:

    在你的项目中严格检查以下事项

    1. 您是否在 Xcode 之外重命名了您的 xib 或故事板文件?如果是这样,请检查您引用它的所有地方是否存在不一致之处。还要确保在引用文件的任何地方都尊重大写/小写字母,因为区分大小写。

    2. 转到 Interface Builder,选择您的 View1 ViewController > Utilities Panel > Identity Inspector > 如果您有一个(.h 和 .m 文件),请检查 Custom Class 是否对应于您的 ViewController 类。

    3. 检查您的 Info.plist 文件。如果你使用故事板,你应该有一个类似Main storyboard file base name 而不是Main nib file base name 的条目。如果您使用笔尖,则反之亦然。还要检查文件基本名称是否与实际文件的名称一致。

    4. 检查目标的Build Phases &gt; Copy Bundle Resources 并确保在那里添加了您的xib 或故事板文件。

    5. 如果您以编程方式实例化 View1 ViewController 并使用 xib 文件,请检查 nib 名称是否存在拼写错误(请记住,区分大小写)。 此外,如果您当前将 .xib 文件格式附加到名称,请删除扩展名,因为不应使用它。我的意思是这行代码:UIViewController *controller = [[UIViewController alloc] initWithNibName:@"xibFileName" bundle:nil];

    6. 在文件检查器中检查您的 xib 或情节提要文件的属性,并确保您的文件已链接到 Target Membership 选择面板中的目标。

    7. 在文件检查器中检查 xib 或故事板文件的属性,并尝试将文件 Location 切换为 Relative to projectRelative to group。看看这两种方法是否有所不同。

    8. 如果您以编程方式在 initWithCoder 中添加视图控制器,则应改为在 viewDidLoad 方法中实例化它

    9. 如果上述情况不适用于您的情况,您可以从 Xcode 中删除该文件(选择 Remove References),然后在您的项目中再次导入。

    请记住在进行上述更改后始终清理您的项目 (SHIFT+COMMAND+K)。

    选择 2

    您在 Storyboard 中的班级名称错误。所以请删除并重新添加 Storyboard 中的班级名称。

    【讨论】:

    • 伟大的名单。除了第 7 项之外,我都做了所有这些(包括选择 2)——没有任何帮助。该选项显示为灰色,因此我无法更改。如何使此选项可用。
    • 我已经尝试过你在 stroyboard 中所做的事情。它甚至对我来说也很好。
    • 好的...但它不适合我。 :(
    • 把你的项目发给我。
    • 你想要我的截图吗?
    猜你喜欢
    • 1970-01-01
    • 2012-05-12
    • 2013-06-30
    • 2015-08-19
    • 2013-06-11
    • 2014-10-25
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多