Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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 UIButton没有名为';目标';_Ios_Swift - Fatal编程技术网

Ios UIButton没有名为';目标';

Ios UIButton没有名为';目标';,ios,swift,Ios,Swift,我将按照以下说明填写以下代码: if self.revealViewController() != nil { menuButton.target = self.revealViewController() menuButton.action = "revealToggle:" self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer()) } 我在故事板中创建了一个ui按钮

我将按照以下说明填写以下代码:

if self.revealViewController() != nil {
   menuButton.target = self.revealViewController()
   menuButton.action = "revealToggle:"
   self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
我在故事板中创建了一个
ui按钮
,并使用变量名
menuButton
向我的cade发布了一个出口,但我发现了以下错误:

UIButton does not have a member named 'target'
UIButton does not have a member named 'action'

既然这些成员不存在,我该用什么来代替呢?

出于某种原因,你决定违背教程,使用UIButton。UIButton是一个UIControl。有关UIControl,请参阅文档: :

如您所见,您可以调用
addTarget:action:forControlEvents:

它没有按照教程所说的方式为您工作的原因是您没有按照教程进行操作。在本教程中,这个东西不是UIButton-它是一个UIBarButtonItem,一种非常不同的动物,它有一个
目标属性和一个
动作属性。

Yep UIControl(UIButton的超类)不会将它们作为属性公开,因为它们可以有多个,并且可以与不同的事件相关联。而是有一种方法


显示
menuButton
的声明。如果有教程要求这样做,我会质疑该教程。假设menuButton是UIButton的子类,它没有target或action属性,并且该代码永远不会工作。menuButton可能是一个自定义类,它应该具有
target
action
属性。你需要提供更多的信息。“我正在学习本教程”不,你没有。如果是的话,你就不会有这个问题。@matt:如果你按照教程的链接进行操作,你会看到它正好包含了这些代码。不清楚作者为什么要把它包括进去,或者他们为什么认为它会起作用…@NoahWitherspoon我确实遵循了链接,我做了教程,它很好地工作,原因我在回答中解释了。UIBarbuttonite不是UIButton。
menuButton.addTarget(self.revealViewController(), action: "revealToggle:", forControlEvents: UIControlEvents.TouchUpInside)