Ios 从另一个ViewController调用函数时发现错误
我试图从另一个ViewController调用函数,但每次尝试调用时都会向我发送一个错误::在展开可选值时意外发现nil 我使用的代码是这样的Ios 从另一个ViewController调用函数时发现错误,ios,swift,function,Ios,Swift,Function,我试图从另一个ViewController调用函数,但每次尝试调用时都会向我发送一个错误::在展开可选值时意外发现nil 我使用的代码是这样的 FirstViewController one: func showup(){ runoutbut.hidden = false } 我用这个函数从另一个ViewController调用它: func go(){ FirstViewController().showup() } 每次我激活它。。。程序向我发送此错误。。
FirstViewController one:
func showup(){
runoutbut.hidden = false
}
我用这个函数从另一个ViewController调用它:
func go(){
FirstViewController().showup()
}
每次我激活它。。。程序向我发送此错误。。。“在展开可选值时意外发现nil”
你知道我该怎么修吗?先谢谢你 如果您想直接创建静态方法,那么直接用类名调用它
FirstViewController one:
static func showup(){
runoutbut.hidden = false
}
签入“类型方法”部分,您需要将您的方法设置为类型方法,或者如果您希望将其设置为类型方法,则需要获取对FirstViewController现有实例的引用。您需要对现有的
FirstViewController
实例的引用,而不是创建新实例。使用协议/委托模式或通过序列传递。您的runoutbut
按钮是FirstViewController
的一部分。该按钮在视图加载时加载。由于FirstViewController
的视图未加载,因此按钮也未加载,因此将为nilthrunout,但是显然是一个实例变量或Outlet也应该是静态的。使用静态方法来避免编写协议和适当的委托方法不是好的编程习惯。你是对的,我只展示了一种编程方法,有很多种