我需要将参数传递给IBAction(但它只有发送者(id) - 在我的情况下是UIButton),所以我想知道是否可以将某些对象的描述转换为对象 . 现在我将参数作为按钮[titleLabel text]传递:
[[button titleLabel]setText:[someObject description]];
在IBAction中我得到了描述:
- (IBAction)AddToCalendarEvent:(id)sender {
NSString * description = [[sender titleLabel]text];
NSLog(@"description is %@", desc);
}
现在我想将此描述转换为对象 . 可能吗?
UPD 我正在用单元格动态填充表格视图 . 每个单元格有四个按钮,我希望这些按钮保留一些对象作为参数传递给IBAction .
2 回答
根据我已经阅读并且目前了解您的问题,我认为最适合您的解决方案是在View Controller上维护按钮的数组(或其他一些适当的数据结构) . 然后,在每个按钮点击时调用的操作方法中,您可以在按钮数组中搜索操作方法的发件人 . 然后,一旦您确定了哪个按钮被点击,您就可以使用它来查找您在数据模型中寻找的任何数据 . 您应该将此解决方案应用于您的情况,它可能最终看起来有点不同,但基本的想法是合理的 . 您应该避免在视图中保持状态(在这种情况下是您的按钮),看起来您正在接近问题描述中的状态 .
你绝对不会以这种方式转换 .
一个简单的选项是将每个UIButton的
tag
设置为一个唯一的整数,并存储您需要查找的对象数组:更复杂的路线是子类UIButton(通常不推荐),用于存储每个UIButton的关联数据 . 然后你可以再次从
sender
查找它 .