0

我在代码中的视图中添加了两个 UITableView。我正确地将代表和数据源设置为 self. 我添加了所有用于返回行数、行高、节数等的委托方法。一切正常。我还在两个表中添加了索引栏。现在的问题是索引栏不适用于第一个表,而它对第二个表工作正常。

当我单击第一个表索引栏上的任何字符时,它会响应第二个表。我无法为第一张桌子采取行动。我还注意到,如果我不将第二个表添加到我的视图中,那么我可以获得第一个表的操作。

这是我的代码

- (void)viewDidLoad
{
    accountsTable = [[UITableView alloc] initWithFrame:CGRectMake(0,27, 320, 390)     style:UITableViewStylePlain];
    [accountsTable setDelegate:self];
    [accountsTable setDataSource:self];
    [self.view addSubview:accountsTable];
    accountsTable.backgroundColor = [UIColor clearColor];
    [accountsTable release];

    keyConnectionsTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 27, 320, 390) style:UITableViewStylePlain];
    [keyConnectionsTable setDelegate:self];
    [keyConnectionsTable setDataSource:self];
    [keyConnectionsTable setBackgroundColor:[UIColor clearColor]];
    [keyConnectionsTable setHidden:YES];
    [self.view addSubview:keyConnectionsTable];
}


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    return [NSArray arrayWithArray:[[UILocalizedIndexedCollation currentCollation] sectionIndexTitles]];
}

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
    return [[UILocalizedIndexedCollation currentCollation] sectionForSectionIndexTitleAtIndex:index]; 
}
4

1 回答 1

0

您需要区分两个表视图。为此,您可以简单地使用“tag”属性并将其设置为不同的值,或者您可以@property在视图控制器中为每个 TableView 设置一个。

@property (strong) IBOutlet UITableView *tv1;
@property (strong) IBOutlet UITableView *tv2;

对于您的方法,您可以执行以下操作:

- (NSInteger)numberOfSectionsInTableView:(UITableView *) tableView {
    if (tableView == self.tv1) {
        return 1;
    } else if (tableView == self.tv2) {
        return 2;
    }
}

底线

您需要区分两个 TableView,否则您会弄得一团糟:)

于 2012-08-03T06:20:09.413 回答