第一个 UIButton 触发同一视图的另一个 UIbutton 事件

Posted

技术标签:

【中文标题】第一个 UIButton 触发同一视图的另一个 UIbutton 事件【英文标题】:First UIButton fires another UIbutton event of same view 【发布时间】:2015-03-23 08:11:06 【问题描述】:

我已经快速创建了两个 UIButton 并以编程方式添加了操作。当我尝试单击第一个按钮时,两个按钮操作都会被触发。但是当我点击第二个按钮时,没有任何事件被触发。

var btnSort = UIButton(frame: CGRectMake(2, 74, 140, 26))
btnSort.setTitle("SORT", forState: UIControlState.Normal)
btnSort.backgroundColor = UIColor.grayColor()
btnSort.tag=10
btnSort.addTarget(self, action: Selector("showSortTbl:"), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(btnSort)



var btnFilter = UIButton(frame: CGRectMake(140+16+2, 74, 140, 26))
btnFilter.backgroundColor = UIColor.redColor()
btnFilter.tag=11
btnFilter.setTitle("FILTER", forState: UIControlState.Normal)
btnSort.addTarget(self, action: Selector("showFilterTbl:"), forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(btnFilter)



func showSortTbl(sender: UIButton)
    var btnSendTag :UIButton = sender
    if(btnSendTag.tag == 10)

println("show sort")

    




func showFilterTbl(sender: UIButton)

    var btnSendTag :UIButton = sender
    if(btnSendTag.tag == 11)

        println("show filter")

    


【问题讨论】:

您将两个操作添加到同一个按钮,即 btnSort。 “复制粘贴”错误。 btnSorts 是的,首先我为一个按钮创建动作,在复制时为另一个按钮创建动作,我忘了更改名称。 【参考方案1】:

改变这一行

btnSort.addTarget(self, action: Selector("showFilterTbl:"), forControlEvents: UIControlEvents.TouchUpInside)

btnFilter.addTarget(self, action: Selector("showFilterTbl:"), forControlEvents: UIControlEvents.TouchUpInside)

【讨论】:

哎呀..那个简单的错误..感谢您的回答 @anishparajuli 你应该把它标记为你的答案。

以上是关于第一个 UIButton 触发同一视图的另一个 UIbutton 事件的主要内容,如果未能解决你的问题,请参考以下文章

UIPopOverController 出现在错误的地方

将数据从一个视图控制器传递到同一视图上的另一个视图控制器

约束布局更改后,不会触发UIButton操作

如何将一个自定义列表的选定数据显示到同一活动的另一个自定义列表视图

如果放置在两个视图之间,UIButton 不会触发动作

同一视图上的 tableview 和 UIButton