我有一个带有自定义单元格的 tableView。在每个单元格中,都有一个 UILabel,它从 NSMutableArray 中获取文本。我设置了一个 GestureRecognizer 来查看这个标签是否被点击。如果它被点击,我会转到另一个视图。
现在在与标签选择器关联的方法中,我想获取 NSMutableArray 中文本的索引,对应于点击的标签。我怎么能那样做?
这是一些销售代码:在 cellForRowAtIndexPath: 方法中,这是我所做的:
cell.Label.text = [tableLabelText objectAtIndex:indexPath.row];
UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(goToViewControllerB:)];
[cell.Label setUserInteractionEnabled:YES];
[cell.Label addGestureRecognizer:tap];
[tap release];
然后我显示一切......
这是 goToViewControllerB 方法:
- (void) goToViewControllerB:(id)sender {
if (!viewControllerB) {
viewControllerB = [[ViewControllerB alloc] initWithNibName:@"ViewControllerB" bundle:nil];
}
navigationController = [[UINavigationController alloc] initWithRootViewController:viewControllerB];
[self presentModalViewController:navigationController animated:YES];
}
如果我这样做,并且如果在我的 viewControllerB 中修改了某些内容并返回到 Table View,然后单击另一个标签,我将被引导到相同的 viewControllerB,其中包含以前的修改。我确实想为每个标签显示一个新的 viewControllerB。
我的想法是获取与点击的标签相对应的 tableLabelText 的索引。每当我调用 goToViewControllerB: 时,我都可以创建一个 ViewControllerB 类型的新对象并将其插入到 NSMUtableArray 中,在同一索引处...类似
if ([ViewControllerArray objectAtIndex: "here the index i'm looking for"]){
"show it" }
else {
"create it and insert it into ViewControllerArray at the right index" }