UIButton为什么addTarget:action:可以将button传值到action给另一个函数

一个button 可以实现2个功能 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 11时,
&无详细内容&
代码片段(1)
demo.zip&~&28KB&&&&
开源中国-程序员在线工具:
相关的代码(36)
0回/28656阅
4回/18350阅
1回/15287阅
3回/8949阅
[Shell/批处理]
0回/6155阅
0回/4723阅
7回/4651阅
[Objective-C]
0回/4120阅
1回/3839阅
0回/3701阅
- (void)methodOne
NSLog(@&功能1&);
- (void)methodTwo
NSLog(@&功能2&);
- (void)viewDidLoad
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(50, 50, 50, 50);
[button setTitle:@&测试& forState:UIControlStateNormal];
[button addTarget:self action:@selector(methodOne) forControlEvents:UIControlEventTouchUpInside];
[button addTarget:self action:@selector(methodTwo) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
2楼:ayanmw 发表于
只贴代码 不贴 解释,是不是 希望 我称呼 LZ 为 牛人啊???
建议 以后 多点文字 叙述。
3楼:xiao麦子 发表于
是啊&& 怎么只有代码啊 加点儿注释撒
4楼:arvinwang 发表于
这个技术含量似乎有点。。。。。
5楼:Blance 发表于
。。。。。。
6楼:李远超 发表于
一楼这样写有什么意义呢?为什么要放在两个方法里呢?我是菜鸟学习中
7楼:赤心 发表于
刚开始做ios的时候以为比较的有难度,现在发现实在是太简单了。主要通过的是uibutton的一个属性进行操作的.
UIButton *
btn.titleLable.text的数据值的变化,来进行不同的操作,这主要是正对刚做IOS的学员,当然我也是做了没有多长时间的。
8楼:赤心 发表于
本人自学IOS,请多多关照。qq:
9楼:刘豆 发表于
引用来自“赤心”的评论本人自学IOS,请多多关照。qq:两个方法,需要点击两次是吗 》?点击一次实现一个,点击第二次,实现第二个.
开源从代码分享开始
赤心的其它代码温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(7140)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'IOS ----UIButton用法详解',
blogAbstract:'这段代码动态的创建了一个UIButton,并且把相关常用的属性都列举了.希望对大家有用.& //这里创建一个圆角矩形的按钮UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];// 能够定义的button类型有以下6种,// typedef enum {// UIButtonTypeCustom = 0, 自定义风格// UIButtonTypeRoundedRect, 圆角矩形&// UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用// UIButtonTypeInfoLight, 亮色感叹号// UIButtonTypeInfoDark, 暗色感叹号// UIButtonTypeContactAdd, 十字加号按钮',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:3,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'IT界菜鸟',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}10328人阅读
Object-C(13)
通过btn传递两个实例对象
firstObject和secondObject
UIButton *btn = // create the button
objc_setAssociatedObject(btn, &firstObject&, someObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
objc_setAssociatedObject(btn, &secondObject&, otherObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
[btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
- (void)click:(UIButton *)sender
id first = objc_getAssociatedObject(btn, &firstObject&);
id second = objc_setAssociatedObject(btn, &secondObject&);
向以上方法那样,只要设置了关联,当把button传递给@selector的参数时,也顺便把另外两个参数也传递过去了。就类似设了button的两个属性,但是这种方法简单多了
第一步: 设定关联objc_setAssociatedObject(btn, &firstObject&, someObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);第一个参数:btn为被关联者(主体),第二个参数:firstObject为指向关联的对象的指针(一般为一个static字符串),第三个参数:关联的对象实例,第四个对象:关联的方式(有几种,类似设定.h文件属性时候的 assign,retain等)第二步:得到关联的对象
id first = objc_getAssociatedObject(btn, &firstObject&);
第一个参数:为被关联者第二个参数:为关联对象的指针。来自:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:376240次
积分:5291
积分:5291
排名:第3522名
原创:156篇
转载:49篇
评论:53条
(1)(1)(5)(1)(1)(1)(2)(1)(1)(13)(17)(26)(7)(2)(1)(1)(17)(2)(2)(9)(16)(5)(7)(25)(4)(7)(2)(5)(6)(2)(2)(2)(12)(2)(1)oc UIButton绑定事件并传值
UIButton&*button&=&[[UIButton&alloc]&initWithFrame:CGRectMake(buttonX,&buttonY,&width,&height)];&&//给button添加点击事件,action参数中写入事件执行方法&&[button&addTarget:self&action:@selector(action:)&forControlEvents:UIControlEventTouchUpInside];&&//在button的tag中添加你需要传递的参数,目前资料中只有这种方法&&//你可以传入任意类型的参数&&[button&setTag:100];&&//要是我们有其他字符串,mode对象咋办?//通过 OC 运行时方法 objc_setAssociatedObject 给对象动态绑定属性objc_setAssociatedObject(button,key, val,OBJC_ASSOCIATION_RETAIN_NONATOMIC);//下面是action方法&&-(void)action:(id)sender{&&//这个sender其实就是UIButton,因此通过sender.tag就可以拿到刚才的参数&&&&&&int&i&=&[sender&tag]; &//通过 objc_getAssociatedObject获取绑定属性的值& & NSObject *val=&objc_getAssociatedObject(button,key);} &更多特性请百度&objc_getAssociatedObject
最新教程周点击榜
微信扫一扫UIView里添加UIButton addTarget不响应事件
[问题点数:20分,结帖人qq]
UIView里添加UIButton addTarget不响应事件
[问题点数:20分,结帖人qq]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2015年5月 移动开发大版内专家分月排行榜第一2015年4月 移动开发大版内专家分月排行榜第一2014年9月 移动开发大版内专家分月排行榜第一
2015年3月 移动开发大版内专家分月排行榜第二2014年8月 移动开发大版内专家分月排行榜第二
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 mvc button action 的文章

 

随机推荐