xcode 查看控制器加载两次-如何修复?

rggaifut  于 2022-12-24  发布在  其他
关注(0)|答案(4)|浏览(115)

问题起因

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

问题所在

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

常见修复

我知道首先要检查的是重复的segue/ segue调用。检查你的文档大纲,看看是否有多个segue。在我的例子中,这肯定不是故事板或viewController中的segue问题。

我不同寻常的处境

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

他们说问题的根源是我的重命名,而且不容易修复,因为重复的内容现在在我的XML文件中。但是这个XML文件在哪里?我如何编辑它来删除类的原始示例?我不知道。
那么我该如何解决这个加载两次的问题呢?我只想让我的viewController有一个正常的segue!

wz8daaqr

wz8daaqr1#

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

这是最简单的解决方案

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

2guxujil

2guxujil2#

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

我遇到了同样的问题。原因是我ctrl从TableViewCell拖到了目标ViewController。所以我删除了segue,只需单击它并按下键盘上的delete键。然后ctrl从第一个视图的ViewController拖到了第二个ViewController。

声明Segue的错误方式

声明Segue的正确方式

oyxsuwqo

oyxsuwqo3#

我也遇到过这种情况。我的案例是从我的UIButton创建一个segue并从源代码执行它。如果它与您的案例匹配,则只需直接从ViewController创建segue到您所需的ViewController。然后执行segue。它工作正常。

suzh9iv8

suzh9iv84#

我最近也遇到了同样的问题,我的视图加载了两次。我有一个选项卡应用程序。每个选项卡的视图控制器都使用带有segue的内容视图。出于某种原因,我将视图控制器和内容视图控制器的自定义类设置为相同的自定义类。

我不知道这两个是如何设置的,可能是我做了什么然后忘记了。如果你看到一个视图控制器加载了两次,而上面的答案没有帮助,检查一下你的父视图和内容视图是否使用了相同的自定义类。

相关问题