具有编程故事板segue的NSInternalInconsistencyException

时间:2016-07-03 12:06:31

标签: objective-c xcode segue xcode-storyboard

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

enter image description here enter image description here

我通过以下方式触发segue:

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

这是我遇到的错误

  

' NSInternalInconsistencyException',原因:'无法加载NIB   捆绑:' NSBundle(已加载)'有名字   '的UIViewController-4FQ-FK-WRG'和目录' Main.storyboardc''

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

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

我已经尝试清理干净和构建目录。

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

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

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

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

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

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

  8. 完成。

1 个答案:

答案 0 :(得分:2)

严格检查项目的以下内容

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

  2. 转到Interface Builder,选择View1 ViewController&gt;公用事业小组&gt; Identity Inspector&gt;如果你有一个(.h和.m文件),检查Custom Class是否对应于你的ViewController类。

  3. 检查您的Info.plist文件。如果您使用storyboads,则应该有Main storyboard file base name和NOT Main nib file base name之类的条目。如果使用笔尖,则反之亦然。还要检查文件基名是否与实际文件的名称一致。

  4. 检查目标的Build Phases > Copy Bundle Resources并确保在那里添加了xib或storyboard文件。

  5. 如果以编程方式实例化View1 ViewController,并使用xib文件检查错别字的笔尖名称(请记住,区分大小写)。 此外,如果您当前将.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)并在项目中再次导入。

  10. 请记住,在进行上述更改后,请务必清理项目(SHIFT + COMMAND + K)。

    选择 2

    您在故事板中的班级名称是错误的。所以请删除并再次添加故事板中的班级名称。