UIButton没有名为' target'的成员。

时间:2015-06-04 23:02:33

标签: ios swift

我正在关注this tutorial,其中声明了以下代码:

if self.revealViewController() != nil {
   menuButton.target = self.revealViewController()
   menuButton.action = "revealToggle:"
   self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}

我在故事板中创建了一个UIButton,并使用变量名menuButton为我的cade打了个出口,但我收到了错误:

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

任何想法我应该使用,因为那些成员不存在?

2 个答案:

答案 0 :(得分:4)

Yep-UIControl(UIButton的超类)不会将它们公开为属性,因为它们可能不止一个,并且它们可以与不同的事件相关联。有一种方法,-addTarget:action:forControlEvents:

var express=require('express');
var app=express();
var twilio=require('twilio');
var acctId='';
var authToken='';
var applicationId='';

app.get('/token',function(req,res){
var capability=new twilio.Capability(acctId,authToken);
capability.allowClientIncoming('dummy');
capability.allowClientOutgoing(applicationId);
var token=capability.generate();
console.log("token:"+token);
});

答案 1 :(得分:2)

由于某种原因,您决定违反本教程并使用UIButton。 UIButton是一个UIControl。请参阅UIControl的文档:  https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/addTarget:action:forControlEvents

如您所见,您拨打addTarget:action:forControlEvents:

它没有按照教程所说的方式为你工作的原因是你没有按照教程。在本教程中,这个东西是不是一个UIButton - 它是一个UIBarButtonItem,一个非常不同的动物, 具有target属性和{{1属性。