2

我有一个视图控制器,其中包含一个 UITableView 中的类别列表。我将这个视图控制器推送到其他三个视图控制器中。所以当我不想发生这种情况时,tableView 的相同功能会被应用。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{ 
self.index = indexPath;
[retrieveName getItemName:[self.arrayForCategories objectAtIndex:indexPath.row]];
[self dismissModalViewControllerAnimated:YES];
[tableView reloadData];
}

此方法仅在从一个视图控制器调用时才有效。知道吗?

4

2 回答 2

2

在您推送的视图控制器中放置一个属性,该属性确定它在选择时应该做什么。让推动它的视图控制器设置属性。在您显示的方法开始时检查属性值。

于 2012-06-06T13:43:14.053 回答
1

您可以将视图控制器子类化,并将该方法包含在子类中。然后,您只需将子类用于您想要该功能的视图控制器。

或者,您可以有一个 BOOL 属性来确定表视图是否应响应选择,并在推送视图控制器之前设置该属性(如果您使用的是故事板,请在 prepareForSegue:sender: 中设置它)。

于 2012-06-11T12:18:33.233 回答