为什么sender.tag总是为零?

时间:2015-12-14 04:01:47

标签: ios swift

我有一系列按钮,当我添加动作时,sender.tag始终为零。我该如何解决?以下是我尝试这样做的尝试。单击一个按钮时,我试图获取另一个数组中的图像和名称以传递给下一个视图控制器。问题是<ion-content class="has-header" ng-controller='GeoLocationController'> <div id="map_canvas"> <ui-gmap-google-map center="map.center" zoom="map.zoom" draggable="true" options="options"></ui-gmap-google-map> </div> </ion-content> 始终为零。

sender.tag

2 个答案:

答案 0 :(得分:3)

只需使用最后一行代码为您的所有UIButton获取不同的标记。

float heightLimit = pixelWidth * 1.95;
[NSPredicate predicateWithFormat:@"pixelHeight >= %f", heightLimit];

答案 1 :(得分:2)

与其他人一样,您从未设置任何按钮的tag属性,因此它们都处于默认值0

试试这个:

let tagBaseValue = 1000 // Custom value

for (index, users) in upimage.enumerate(){

    let tag = tagBaseValue + index

    var userbutton = UIButton()
    userbutton.addTarget(self, action: "buttonAction:", forControlEvents: .TouchUpInside)
    userbutton.frame = CGRectMake(100, 100, 50, 50)
    userbutton.layer.cornerRadius = userbutton.frame.size.width/2
    userbutton.clipsToBounds = true
    userbutton.setImage(users, forState: .Normal)

    userButton.tag = tag // <-- ADD THIS LINE!!!
}

已编辑:自定义按钮标记的起始值较高,不等于零,以便区分按钮不带自定义标记值集(以下建议为@) rmaddy在@VirajPadsala回答的评论中。