我有一个带有“联系人”单元格的“联系人列表”表 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/

10-12 14:46