2012-08-03 68 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