我有一个带有“联系人”单元格的“联系人列表”表 View ,其中包含一个电子邮件按钮,点击该按钮时,应向该电子邮件编辑器显示该联系人的电子邮件地址。
将UIButton与该单元格的“联系人”实例相关联的最佳方法是什么?
我已经为我想到的两种方法创建了答案–但是我并不十分满意。您更喜欢哪个,或者更好得多,建议更好的!
最佳答案
方法二:
使单元处理该操作并调用自定义委托(delegate)方法。
// YMContactCell.h
@protocol YMContactCellDelegate
- (void)contactCellEmailWasTapped:(YMContactCell*)cell;
@end
@interface YMContactCell
@property (weak, nonatomic) id<YMContactCellDelegate> delegate;
@end
// YMContactCell.m
- (IBAction)emailContact:(id)sender {
[self.delegate contactCellEmailWasTapped:self];
}
// ContactListViewController.m
- (void)contactCellEmailWasTapped:(YMContactCell*)cell;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
YMContact *contact = [[self fetchedResultsController] objectAtIndexPath:indexPath];
// present composer with `contact` ...
}
处理 View 中的事件是否违反MVC原则?
关于ios - 最佳实践: handling actions from buttons inside tableview cells?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15745324/