2012-08-03 58 views
0

我在我的代码中添加了两个UITableViews到我的视图。我正确地将代表和数据源设置为自我。我已经添加了所有的委托方法,用于返回行数,行数,段数等等。一切正常。我还为两个表格添加了索引栏。现在问题是索引栏不适用于第一张表格,而第二张表格可以正常工作。当我点击第一个表索引栏上的任何字符时,它响应第二个表。我无法获得第一张表格的动作。我也注意到,如果我不添加第二个表到我的视图,那么我能够得到第一个表的动作。有没有人遇到过这个问题。 Plz帮助我。多个UITableview索引条

这里是我的代码

- (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

只是一个小小的调整..尝试将标签分配给表视图。我也一次使用多个tableview。 还有一件事你为什么还没有发布第二张表? – Tarun 2012-08-03 06:20:51

+0

你已经在你的view.CGRectMake(0,27,320,390)完全相同的地方添加了两个表视图你不觉得你应该在第二个表与其他框架说 - CGRectMake(0,475,320,390 )。我猜你的第二张桌子与第一张桌子重叠。您是否通过一些切换开关隐藏/取消隐藏这些表格? – 2012-08-03 06:52:51

+0

@RahulSharma:是的,你猜对了。我在视图中有两个按钮,用于在表格之间切换。我通过点击按钮隐藏/取消隐藏表格。我的代码非常庞大,这就是为什么我只在代码中添加了我正面临问题的原因。正如我刚才所说,其他一切正常工作,因为它应该工作。我只是面临索引栏问题。 – Jayshree 2012-08-03 07:16:09

回答

0

你需要区分这两种表视图。要做到这一点,您可以简单地使用“标签”属性并将其设置为不同的值,或者您可以在每个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; 
    } 
} 

底线

您需要区分两个TableViews或者你会弄得一团糟:)

+0

我正在区分这两个表,就像你说的一样。我没有通过nib文件添加表格。相反,我正在通过代码创建和分配表。我添加了所有必需的方法并为它们返回适当的计数。一切工作正常,除了索引栏 – Jayshree 2012-08-03 06:33:09

+0

那么为什么在你粘贴的片段没有区别?每个UITableView的索引应该是相同的? – Goles 2012-08-03 15:48:41