Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 视图控制器加载两次-如何修复?_Ios_Xml_Xcode - Fatal编程技术网

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

Ios 视图控制器加载两次-如何修复?,ios,xml,xcode,Ios,Xml,Xcode,问题原因 当我在iOS项目中添加了一个新的Swift类文件时,我觉得自己犹豫不决,于是将其重命名、删除并创建了一个新文件。我想我实际上是如此犹豫不决,以至于我给它重新命名了几次 问题 现在viewController加载两次。我可以看到转换发生了两次,在测试期间,我可以看到viewDidLoad在控制台中运行了两次 常见修复程序 我知道要检查的第一个解决方案是重复的segue/segue调用。检查文档大纲,查看是否有多个序列。在我的例子中,这绝对不是故事板或viewController中的seg

问题原因

当我在iOS项目中添加了一个新的Swift类文件时,我觉得自己犹豫不决,于是将其重命名、删除并创建了一个新文件。我想我实际上是如此犹豫不决,以至于我给它重新命名了几次

问题

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

常见修复程序

我知道要检查的第一个解决方案是重复的segue/segue调用。检查文档大纲,查看是否有多个序列。在我的例子中,这绝对不是故事板或viewController中的segue问题

我不寻常的处境

我发现有人有两次相同的负载问题,这是因为重命名:

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

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

解决了我的问题

如果你搞乱了一个类的名称(或者它的文件名),并且遇到了和我一样的“两次加载”问题,你可能很难解决它。我找到的唯一建议的解决方案是从头开始创建一个新项目,然后复制内容。但是,相反

这是有史以来最简单的解决方案:


重命名正在加载两次的viewController类!不必担心文件,只需担心其中的视图控制器类。您的XML文件可能与原始类名重复,但将您的类重命名为全新的名称,您应该会没事。

我也遇到过这种情况。我的案例是从我的ui按钮创建一个segue,并从源代码执行它。 如果它与您的情况匹配,则只需创建从ViewController到所需ViewController的segue direct。 表演这一段。它可以工作。

删除Segue并以正确的方式声明它。 我也面临同样的问题。原因是我将ctrl从TableViewCell拖到了目标ViewController。 所以我只需点击并按下键盘上的delete键,就可以删除segue。 然后ctrl从第一个视图的ViewController拖动到第二个ViewController

声明Segue的错误方法

声明Segue的正确方法


没有对错之分。如果采用第二种方法,情况会更加明显。这正是我的问题所在。我已经手动实现了segue(#2选项),但随后从我的Main.storyboard中删除了segue表示,并使用选项#1重新实现了它-这使Xcode认为我的每个连接都有两个segue,因此视图控制器加载了两次。@marika.daboja感谢您的输入,并为这个答案增加了更多的价值。谢谢老兄,这让我省去了很多烦恼!谢谢非常有帮助!