2011-07-15 8 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; 

私は「つかんだ」か何かを逃したのかしらと思います。私は1つのポップオーバーでこのデータをそのまま受け取り、正常に動作します。しかし、それを別のポップオーバーに入れると、何も表示されません。だから私は困惑している!どんな助けも素晴らしいだろう。ありがとう。

+0

テーブルビューの背景色を変更していますか? –

+0

ええ、テーブルビューの背景色は、私のpopoverでclearColorに設定されています。データがある場合、tableViewは右にスクロールする必要がありますか?私がうんざりして、textとtableViewの色が同じであったように。テーブルはスクロールしないので、NSLogの配列を使用することはできますが、そこにデータがないと仮定します。 – Crystal

+0

他のポップオーバーは、動作するポップオーバーと同じ場所に 'dataSource'と' delegate'を設定しますか?あなたは全く何も見ていないので、どこからデータを呼び出すのかわからないと言うのが嫌です。それは逃しやすいのです。 – justin

答えて

0

この問題のトラブルシューティングをお手伝いしてくださった皆様、ありがとうございます。それは色の問題ではありませんでした。私はついにそれを働かせましたが、私はなぜそれほど確かではありません。たぶん、他の誰かが今、なぜ今働くかのようにチャイムインすることができます。だから私のcellForRowAtIndexPathメソッドおよびその他のデータソースの方法で、私が持っている私が最初にそれが働いていたとき、私は、あなたがそのテーブルの行を選択することになり、tableView1を示すだろうボタンからポップオーバーを持っていた

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

のようなコード、 _categoriesTableViewのような別のポップオーバーを表示します。だから、このコードはうまくいきました。しかし、最初のポップオーバーを変更して_categoriesTableViewを表示しようとすると、他のコードはすべて同じになりますが、データは正しく表示されません。その後、popViewのデータを初期化するtableView1を置き換えるのではなく、まだ初期化しましたが、ポップオーバーには表示されませんでした。私がブレークポイントでコードをたどったとき、私の "本当のもの"が実行されたので、tableView1の初期化されていないメモリが問題を引き起こすのはなぜか分かりません(UITableViewのデータを表示する)。

0

テーブルに定義した行とセクションの数はいくつですか?それらが正しく定義されていないと、データが入力されません。私はまた、あなたのtableViewCellが白ではないと仮定しています。なぜなら、あなたはテキストの色を白に設定しているからです。

+0

ええ、tableviewはclearColorに設定されています(私はそれをpopoverに表示するときに設定します)。私はtableViewデータがあるとは思わないが、tableViewはスクロールしません。行の場合、[_categoriesArray count]を返し、すべてのtableViewsのセクションについて1を返します。 – Crystal

+0

tableViewを読み込むときにcellForRowAtIndexPathメソッドが実行されていることを確認しましたか? – 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]になりますが、透明性が実際にスクロールするフレームレートを傷つけることに注意してください。可能であれば、不透明なビューを使用する方がよいでしょう。

関連する問題