Swift:UIButton没有正确调用

时间:2015-09-30 13:55:58

标签: swift uibutton

这是我的代码(在Swift 2中)创建我的UI按钮。

let SettingsBtn = UIButton(type: UIButtonType.System) as UIButton
SettingsBtn.frame = CGRect(x: 50, y: 50, width: 40, height: 40)
SettingsBtn.center = CGPoint(x: view.center.x * 1.8, y: view.center.y * 1.85)
SettingsBtn.setImage(UIImage(named: "Gear"), forState: UIControlState.Normal)
SettingsBtn.addTarget(self, action: Selector("Settings"), forControlEvents: UIControlEvents.TouchUpInside)
self.view?.addSubview(SettingsBtn)

在我的功能中我有这个:

PlayBtn.removeFromSuperview()
CharBtn.removeFromSuperview()
SettingsBtn.removeFromSuperview()

它会删除所有内容,但在转到Settings.Btn时会向我发出错误。

不确定原因,可能是因为UI按钮的创建方式?我找到的用于创建带有自定义图像的按钮的按钮的代码I.

我的错误如下:

fatal error: unexpectedly found nil while unwrapping an Optional value (lldb) 

虽然我在班级之外定义了var SettingsBtn : UIButton!;我的变量SettingsBtn不会像其他变量一样突出显示。

2 个答案:

答案 0 :(得分:0)

您的代码很难确定,但在我看来,您的SettingsBtn超出了范围。您是否也确定已将其添加到视图中?我会尝试在断点上放置一个断点:

self.view?.addSubview(SettingsBtn)

并检查视图是否可以解包或者是否为零。

也许您可以发布其余的代码,以便我们能够获得更清晰的图片?

答案 1 :(得分:0)

事实证明,既然我已经全局调用它,我可以删除let语句,它现在可以正常工作。