视图控制器加载两次 - 如何修复它?

时间:2015-08-30 19:26:24

标签: ios xml xcode

问题原因

当我向我的iOS项目添加一个新的Swift类文件时,我认为我是优柔寡断并将其重命名,删除它并创建了一个新文件。我认为我实际上是如此优柔寡断,以至于我将其重命名了几次。

问题

现在viewController加载了两次。我可以直接看到转换发生两次,在测试期间,我可以看到我的viewDidLoad在我的控制台中运行两次。

常见修复

我知道要检查的第一个解决方案是重复的segues / segue调用。检查您的文档大纲,看看是否有多个segue。在我的情况下,它绝对不是故事板或viewController中的segue问题。

我的罕见情况

我找到了一个有同样负载两次问题的人,这是因为重命名:

Screenshot

他们说这是我所做的重命名,这是我问题的根源,并不容易修复,因为复制现在在我的XML文件中。但是这个XML文件在哪里?如何编辑它以删除类的原始实例?我不知道。

那么如何解决这个负载问题呢?我只是希望我的viewController有一个正常的segue!

2 个答案:

答案 0 :(得分:4)

解决了我的问题!

如果你弄乱了一个班级的名字(或者它的文件名)并且有相同的"加载两次"我遇到的问题,你可能很难解决它。我发现的唯一建议的解决方案是从头开始创建一个新项目并复制内容。但是,而不是......

以下是最简单的解决方案:

重命名加载两次的viewController的类!不要担心文件,而是其中的视图控制器类。您的XML文件可能与原始类名重复,但是将您的类重命名为全新的类,您应该没问题。

答案 1 :(得分:3)

删除Segue并以正确的方式声明它。

我遇到了同样的问题。原因是我将ctrl从TableViewCell拖到目标ViewController。 因此,我只需单击一下并按键盘上的Delete键即可删除该segue。 然后将ctrl从第一个视图的ViewContoller拖动到第二个ViewController。

声明Segue的错误方式

enter image description here

宣告塞格的正确方法

enter image description here