1)我有一个由视图控制器托管的简单表视图和由自定义UITableViewCell
类托管的单元。我的单元格上的一个按钮放下一个菜单(一个简单的表格视图控制器从非主持人加载到图片'类使用FPPopoverMenu
)。
2)问题是我想在下拉菜单行选择中更新我的按钮背景图像,这涉及我的图片下拉菜单tableview类'和我的自定义表格查看单元格类'完全抛弃我的自定义主机UITableViewCell
。
3)我尝试使用NSNotification
之类的,我成功地做了一个简单的场景,只涉及主机类和下拉菜单类,但现在它是自定义tableview单元格(这是一个重复实体)和我想要的下拉类沟通..请帮忙。我设置了NSNotification
但背景图片保持不变,意味着通知未及时到达/无法及时到达。
4)显然我需要10个声望来发布图片(: - []所以这里是链接:
如图所示,我已经在下拉菜单中发出了通知,当按下隐藏时,背景应该改变,否则,如果显示按下它应该是绿色,如图所示......我之前做过但不是为我做任何事情。任何帮助将不胜感激。提前谢谢你!
答案 0 :(得分:1)
要实现这一目标,您可以使用块。
您需要添加
@property (nonatomic, copy) void (^didSelectAction)(NSIndexPath *indexPath);
查看popover中显示的控制器。
而不是tableView: didSelectRowAtIndexPath:
调用此块
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.didSelectAction)
self.didSelectAction(indexPath);
}
因此,当您创建一个popover时,您应该提供额外的处理程序。 像这样的东西
向按钮添加新操作
- (UITableViewCell *) tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCell"];
[[cell button] addTarget:self action:@selector(showPopoverFromButton:) forControlEvents:UIControlEventTouchUpInside];
}
- (void) showPopoverFromButton:(UIButton *)sender {
//Your table view which is shown in popover
UITableViewController *controller = [[UITableViewController alloc] init];
[controller setDidSelectAction:^{
[sender setBackgroundColor:[UIColor redColor]];
}];
FPPopoverMenu *popover = [[FPPopoverController alloc] initWithViewController:controller];
[popover show];
}