0

我有一个带有自定义单元格和节标题的 TableView。标题向我显示国家,自定义单元向我显示城市。

看起来像这样:

美国

  • 纽约

  • 洛杉矶

德国

  • 柏林

  • 法兰克福

每个单元格都有一个按钮。按下后它将导航并将城市名称推送到详细视图。

问题是,按下按钮后我不知道如何确定城市名称。

我有一个解决方案,但它不再起作用了:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath];
    StandortCell *cell = (StandortCell *)[tableView dequeueReusableCellWithIdentifier:@"ortCell"];
    [cell.detailButton setTag:indexPath.row];
    cell.ortLabel.text = [managedObject valueForKey:@"stadtname"];
}


- (IBAction)detailButton:(id)sender {

    UIView *contentView = [sender superview];
    UITableViewCell *cell = (UITableViewCell *)[contentView superview];
    NSIndexPath *cellIndexPath = [self.tableView indexPathForCell:cell];

    NSInteger section = cellIndexPath.section;

        UIButton * myButton = sender;
    int row=myButton.tag;

   NSIndexPath * indexPath = [NSIndexPath indexPathForRow:row inSection:section];

    StrasseViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"strasse"];
    self.selectedStandort = [self.fetchedResultsController objectAtIndexPath:indexPath];
    detail.currentStandort = self.selectedStandort;
    [self.navigationController pushViewController:detail animated:YES];

}

当我使用我的旧代码时,它只会在第一部分显示正确的街道行。它没有检测到其他部分(国家);

当我在第三部分选择第一个城市时。它将向我显示第一部分中的第一个城市。

我希望你能帮助我。

4

2 回答 2

1

使用它我希望它能解决你的目的。

在视图控制器中创建一个按钮按下方法

  • (IBAction)detailButton:(UIButton *)sender {

    CustomUITableViewCellName *cell = (CustomUITableViewCellName *)[[sender superview]superview]; NSIndexPath *cellIndexPath = [YOUR_TABLE_NAME indexPathForCell:cell];

}

对于 ios 7 添加另一个超级视图。

现在通过这种方式,您将获得您的 IndexPath,并通过使用 indexPath.row 或 indexPath.section 获得当前行。

您可以使用 sender.title 属性获取标题。

您可以在数组中使用此 indexPath 来获取所需的详细信息。

于 2013-11-15T11:08:17.047 回答
0

您需要分别发送行和部分信息,因此将标签设置为

标签=行*1000+节。

现在使用 row= tag/1000 section =tag%1000 从标签获取节和行值

使用此值来制作正确的索引路径或找到一些比 2 分钟更好的解决方案来获得它。

注意它的解决方法是正确的

  1. 子类 UIButton
  2. 添加一个 indexpath 属性 int 它
  3. 让你的类制作按钮对象并设置标签集 indexpath 属性。

在 CustomButton.h

@interface CustomButton :UIButton
@property (nonatomic,assign)NSIndexPath *path;
@end

在 CustomButton.m

@implementation CustomButton
@synthesize path;
@end

在表格视图单元格上使用此自定义按钮,而不是标记集路径属性

于 2013-11-15T11:02:59.583 回答