我在我的代码中向我的视图中添加了两个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];
}
答案 0 :(得分:0)
您需要区分两个表视图。要做到这一点,你可以简单地使用“tag”属性并将其设置为不同的值,或者你可以在视图控制器中为每个TableView设置一个@property
。
@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,否则你会弄得一团糟:)