2011-07-14 9 views
1

BarButtonItemからのポップオーバーを作成し、そのポップオーバー(テーブルビュー)の選択に基づいて別のポップオーバーがデータ。私が持っていたデータは正しく表示されました。デバッガでは、self.CategoriesArrayにあるNSLogのデータをcellForRowAtIndexPathに表示します。しかし何らかの理由で、データは表示されません...しかし、最初のポップオーバーは必要ありません。また、BarButtonItemからのポップオーバーは1つだけです。私の人生にとって、なぜ私のデータが提示されていないのか分からないのは、ポップオーバーの最初のUITableViewを2番目のUITableViewに置き換えただけだからです。私が何かが欠けていない限り.....どんな助けもありがたいです。ありがとう!UITableViewデバッグのヘルプでデータが表示されない

cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (tableView == _filterTableView || tableView == _categoriesTableView) { 

     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; 

     // first popover 
     if (tableView == _filterTableView) { 
      simpleCell.textLabel.text = [_filterArray objectAtIndex:row]; 
      return simpleCell; 
     } 
     // second popover 
     else if (tableView == _categoriesTableView) { 
      simpleCell.textLabel.text = [_categoriesArray objectAtIndex:row]; 
return simpleCell; 
    } 

- (IBAction)FilterButtonPressed:(id)sender { 

      // This part works for two popovers 
//  UIViewController *contentViewController = [[UIViewController alloc] init]; 
//  self.FilterTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 200, 150) style:UITableViewStylePlain]; 
//  self.FilterTableView.delegate = self; 
//  self.FilterTableView.dataSource = self; 
//  self.FilterTableView.bounces = NO; 
//  self.FilterTableView.scrollEnabled = NO; 
//  self.FilterTableView.backgroundColor = [UIColor clearColor]; 
//  contentViewController.contentSizeForViewInPopover = CGSizeMake(200, 150); 
//  contentViewController.view = _filterTableView; 
//   
//  self.FilterPopoverController = [[UIPopoverController alloc] initWithContentViewController:contentViewController]; 
//  [self.FilterPopoverController presentPopoverFromBarButtonItem:_filterButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
//   
//  [contentViewController release]; 

     // New code tfor one popover 
     [self loadCategories]; 
     UIViewController *contentViewController = [[UIViewController alloc] init]; 
     self.CategoriesTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) style:UITableViewStylePlain]; 
     self.CategoriesTableView.delegate = self; 
     self.CategoriesTableView.dataSource = self; 
     self.CategoriesTableView.bounces = NO; 
     self.CategoriesTableView.scrollEnabled = YES; 
     self.CategoriesTableView.backgroundColor = [UIColor clearColor]; 
     contentViewController.contentSizeForViewInPopover = CGSizeMake(320, 500); 
     contentViewController.view = _categoriesTableView; 

     self.FilterPopoverController = [[UIPopoverController alloc] initWithContentViewController:contentViewController]; 
     self.FilterPopoverController.delegate = self; 
     [self.FilterPopoverController presentPopoverFromBarButtonItem:_filterButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];   
     [contentViewController release]; 

    } 
} 
+0

このような問題が発生したときは、まずIBですべてを正しく接続していることを確認してから、tableViewメソッドにブレークポイントを設定して、少なくとも呼び出されていることを確認します。 –

+0

それは良い考えです。ポップオーバーを除いて、私にはアウトレットがありません。それは単にボタンから出てくるだけです。 – Crystal

+0

可能な複製の[UITableViewDataSourceメソッド-cellForRowAtIndexPath](http://stackoverflow.com/questions/6702311/uitableviewdatasource-method-cellforrowatindexpath) – Crystal

答えて

0

私はあなたの他の質問からこのコードを認識しています。 :)テキストの色を白に設定しています。セルのデフォルトの背景色も白です。これは同じバグですか?セルに異なる背景色を設定してみてください。

これで解決できない場合は、もう1つ確認できます。これを設定しています:

contentViewController.view = _categoriesTableView; 

ただし、_categoriesTableViewがどこから来るのかはあなたのコードからは分かりません。あなたの実装の先頭に@synthesize CategoriesTableView = _categoriesTableView;がありますか?

ビューの割り当てにブレークポイントを設定し、_categoriesTableViewがnilでないことを確認します。

+0

はい@合成があります。 _categoriesTableViewはブレークポイントを持つnilではありません。まだ何が起きているのか分からない。 – Crystal

関連する問題