Ios 具有相同swift类崩溃的2个或多个ViewController

Ios 具有相同swift类崩溃的2个或多个ViewController,ios,swift,uiviewcontroller,Ios,Swift,Uiviewcontroller,您好,我的故事板中有多个Veiwcontorller,当它们具有相同的类(对于exmaple viewocntorller.swift)和类似的代码时 改变背景颜色,它们会崩溃 EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0) 是否有一些方法可以修复此问题,而无需为每个viewcontroller使用单独的.swift文件 这里是截图 您可以看到viewcontroller在同一个类中这不是viewcontroller的错误。这意

您好,我的故事板中有多个Veiwcontorller,当它们具有相同的类(对于exmaple viewocntorller.swift)和类似的代码时 改变背景颜色,它们会崩溃

EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)
是否有一些方法可以修复此问题,而无需为每个viewcontroller使用单独的.swift文件

这里是截图


您可以看到viewcontroller在同一个类中

这不是viewcontroller的错误。这意味着您的按钮引用不存在。它是零。验证它是否已正确创建。
可能是一个xib的按钮插座,而不是另一个。当您的xib(没有按钮)调用viewDidLoad时,按钮为nil。
如果两者都有按钮,请正确连接插座。否则,将此按钮设置为可选的

您的故事板中的第二个视图控制器上没有按钮。 由于您的代码(链接到两个视图控制器)中有一个按钮(第一个视图控制器上的按钮)的出口,并且您为其指定了颜色,因此您的代码将崩溃,因为没有按钮,调用nil reference=crash

要解决此问题,可以在第二个视图上添加一个按钮


outlet不是一个基本的可选选项,事实上,您是在告诉编译器这个按钮永远不会为零,这就是我们所说的隐式展开可选选项。

viewocntorller是视图控制器的一个非常奇怪的名称:除此之外,你能通过显示屏幕截图和一些代码来告诉我们你做了什么吗?很抱歉我的拼写错误,我使用的是默认的视图控制器名称类和文件名是不同的,你可以在同一个swift文件中有多个类。请提供一个代码示例。@thibautnoah doneupdate@Eendje更新完毕我是新来的这是什么?我已经制作了iBookOutlet并使用了它。使用viewController的第二个视图是什么?它也有按钮吗?请看,最简单的解决方案是为两个视图使用不同的viewcontroller,因为它们不相同。(我想这是我的建议,你不知道期权等。但别担心,这很简单,你会学到:))如果你仍然面临任何问题@user3705265,请告诉我如何让它成为可选的?首先,断开这个插座。现在改变到“?”。然后将按钮与该插座连接(swift文件中已经提到)。现在,在设置按钮的颜色时,使用“button?”而不是“button”是否在其他视图上没有按钮OcnTorllerDunno如果fayza的解决方案不起作用,并且您仍然希望对两个视图使用相同的类,您可以在视图上放置一个id,并根据id在代码中创建一个按钮或不创建一个按钮。