我试图实现一个自定义的下拉菜单(通过互联网搜索代码),并将其用于两个UIButton。
当按下按钮时,将出现一个tableView。
我为一个UIButton实现了它,而试图为另一个按钮实现它,但是我不确定它如何知道哪个对象正在调用委托。

在CustomDropDownView.m中

@protocol DropDownViewDelegate

@required
- (void)dropDownCellSelected:(NSInteger)returnIndex;

@end

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [delegate dropDownCellSelected:indexPath.row];
    [self closeDropDown];

}


在ViewController.m中

- (void)dropDownCellSelected:(NSInteger)returnIndex {
//here I've to decide which button is changed
    [self.reminderCategory setTitle:[reminderCategoryList objectAtIndex:returnIndex] forState:UIControlStateNormal];
}


如何知道按下了哪个按钮。
我刚刚开始学习与代表们的斗争,请帮助。

最佳答案

最简单的解决方案是使用tableView.tag属性,如果按钮1或2触发了它的出现,则将其设置为1或2。
然后将您的协议修改为:

-(void)dropDownCellSelected:(NSInteger)returnIndex forButtonNo:(NSInteger)button;


并这样称呼它:

[delegate dropDownCellSelected:indexPath.row forButtonNo:tableView.tag];

关于ios - 两个UIButton iOS的自定义下拉菜单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20169799/

10-11 22:22