2011-07-15 43 views
1

如果我有我的數據在一個NSArray中,並且我可以在我的-cellForRowAtIndexPath方法中使用NSLog數據,那麼是否有任何理由說明我無法使用以下代碼在我的UITableView中看到數據:UITableViewDataSource方法-cellForRowAtIndexPath

static NSString *simpleIdentifier = @"SimpleIdentifier"; 
     UITableViewCell *simpleCell = [tableView dequeueReusableCellWithIdentifier:simpleIdentifier]; 
     if (simpleCell == nil) { 
      simpleCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleIdentifier]; 
     } 
     NSUInteger row; 
     row = [indexPath row]; 
     simpleCell.textLabel.textColor = [UIColor whiteColor]; 
     simpleCell.selectionStyle = UITableViewCellSelectionStyleNone; 
      simpleCell.textLabel.text = [_categoriesArray objectAtIndex:row]; 
return simpleCell; 

我想知道我是否錯過了「gotcha」或什麼的。我有一個popover這個數據逐字記錄,它工作正常。但是當我把它放入另一個popover時,它什麼也沒有顯示。所以我很難過!任何幫助都會很棒。謝謝。

+0

你是否正在改變表格視圖的背景顏色? –

+0

是的,tableview的背景顏色在我的popover中設置爲clearColor。如果有數據,tableView應該向右滾動?就像如果我搞砸了,文本和tableView顏色是相同的。該表不滾動,所以我認爲那裏沒有數據,即使我可以NSLog我的數組。 – Crystal

+0

另一個popover是否將'dataSource'和'delegate'設置爲工作的popover的相同位置?因爲你根本沒有看到任何東西,所以我很想說它只是不知道從哪裏調用它的數據,並且這是一個容易錯過的事情 – justin

回答

0

謝謝大家試圖幫我解決這個問題。這不是一個顏色問題。我終於開始工作了,但我不太清楚爲什麼。也許其他人可以作爲現在爲什麼它的作品。所以在我的cellForRowAtIndexPath方法和其他數據源的方法,我有這樣的代碼

if (tableView == tableView1 || tableView == _categoriesTableView || tableView == tableView2) { 
... 
if (tableView == tableView1) { 
//do stuff 
} 
else if (tableView == _categoriesTableView) { 
// do real stuff 
} 
else { 
// do stuff 
} 

當我第一次有它的工作,我已經從一個按鈕酥料餅,將顯示tableView1,那麼你會在該表中選擇一行,呈現另一個類似_categoriesTableView的彈出窗口。所以這段代碼工作正常。但是,當我嘗試將第一個彈出窗口更改爲顯示_categoriesTableView,並將所有其他代碼保留爲相同時,將不會顯示正確的數據。然後,我沒有替換popView的tableView1初始化數據,而是將其初始化,但沒有將其展示在popover中,現在一切正常。不知道爲什麼tableView1的未初始化的內存會導致問題,因爲當我用斷點跟蹤代碼時,我的「做真正的東西」運行,只是不會做它應該(顯示在UITableView中的數據)。

0

您爲表格定義了多少行和段?如果他們沒有正確定義你將不會有任何數據填充。我還假設你的tableViewCell不是白色的,因爲你將文本的顏色設置爲白色。

+0

是的,tableview被設置爲clearColor(當我在popover中展示它的時候設置它)。我不認爲有tableView數據,因爲tableView不會滾動。對於行,我返回[_categoriesArray count],爲所有我的tableViews部分,我返回1. – Crystal

+0

您確認cellForRowAtIndexPath方法正在運行時,您的tableView應加載? – Jamie

+0

是的。我可以看到它與斷點,如果我NSLog(@「%s」,__FUNCTION__); – Crystal

0

你構建你的是這樣的:

simpleCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleIdentifier]; 

默認情況下此創建了一個不透明的白色背景上的細胞。然後你在你的文字顏色設置爲白色:

simpleCell.textLabel.textColor = [UIColor whiteColor]; 

嘗試設置不同的背景顏色爲您的電池:

simpleCell.backgroundColor = [UIColor grayColor]; 

如果你真的需要的表是透明的,你可以設置顏色單元格和tableView本身都是[UIColor clearColor],但請注意透明度確實會影響您的滾動幀速率。儘可能使用不透明視圖。

相關問題