0

1)我有一个由视图控制器托管的简单表格视图和由自定义UITableViewCell类托管的单元格。我的单元格上的一个按钮下拉一个菜单(一个简单的表格视图控制器从非主机“图片外”类加载使用FPPopoverMenu)。

2)问题是我想在下拉菜单行选择中更新我的按钮背景图像,这涉及我的“图片下拉菜单表视图类”和我的“自定义表视图单元格类”完全抛弃了我的自定义主机UITableViewCell

3)我尝试使用NSNotificationlike,我成功地完成了一个仅涉及主机类和下拉菜单类的简单场景,但现在它是我想要交流的自定义tableview单元(这是一个重复实体)和下拉类。请帮忙。我设置了NSNotification但背景图像保持不变,这意味着通知没有及时到达/没有到达。

4) 显然我需要 10 个声望来发布图片 (:-[) 所以这里是链接:

在此处输入图像描述

如图所示,我已经在下拉列表的 didSelectRow 上触发了通知,当按下隐藏时,背景应该改变,否则如果按下显示,它应该是绿色的,如图所示......就像我之前所做的那样,但这对我没有任何作用。任何帮助将不胜感激。先感谢您!

4

1 回答 1

1

为此,您可以使用块。

您需要添加

@property (nonatomic, copy) void (^didSelectAction)(NSIndexPath *indexPath);

查看弹出窗口中显示的控制器。

tableView: didSelectRowAtIndexPath:调用这个块

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (self.didSelectAction)
        self.didSelectAction(indexPath);
}

因此,当您创建弹出框时,您应该提供额外的处理程序。像这样的东西

为您的按钮添加新操作

- (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];
}
于 2015-12-23T09:24:19.520 回答