左側にドリルダウン テーブルがある iPad 用の分割ビュー コントローラーがあります。最初のテーブル ビューにデータを入力できます。セルをクリックすると、2 番目のテーブル ビューに移動します。返されたレコードの数と、NSLog コマンドを使用したコマンド ウィンドウのテーブル ビュー出力に表示されると予想される実際のデータを確認できます。表示されないのは、テーブル ビューの実際のデータです。代わりに、返される各行の UITableViewCellAccessoryDisclosureIndicator が表示されますが、実際のデータは表示されません。
私は xib ファイルを使用しており、ドリルダウンで表示したい製品用にこのファイルを作成しました。私のProduct.xibファイルには、製品にリンクされたproductsTableView(私のUITableViewコントロール)とビューにリンクされたビューとして、ファイルの所有者アウトレットがあります。ビューの参照アウトレットには、製品にリンクされたデータ ソース、製品にリンクされたデリゲート、最後にファイルの所有者にリンクされたビューがあります。
ここで何か不足していますか?私が言ったように、グリッドにバインドされていないだけで、すべてのデータが返されます。
@interface ProductViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> {
NSMutableArray *listOfItems;
NSMutableArray *dataArray;
IBOutlet UITableView *productsTableView;
}
@property(nonatomic, strong) IBOutlet UITableView *productsTableView;
@end
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Set up the cell...
NSString *cellValue = [listOfItems objectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.textLabel.text = cellValue;
return cell;
}
徹底的にするために、これも投稿して、データをどこに戻し、どのようにこれを行っているかを示します...
-(void) connectionDidFinishLoading:(NSURLConnection *)connection {
NSError *error = nil;
// Get the JSON data from the website
id result = [NSJSONSerialization JSONObjectWithData:receivedData options:kNilOptions error:&error];
if ([result isKindOfClass:[NSArray class]]) {
for (NSArray *item in result) {
NSArray *products = [item valueForKey:@"ProductDescription"];
[dataArray addObject:products];
[listOfItems addObject:products];
}
}
else {
NSDictionary *jsonDictionary = (NSDictionary *)result;
for(NSDictionary *item in jsonDictionary)
NSLog(@"Item: %@", item);
}
[self performSelector:(@selector(refreshDisplay:)) withObject:(self.productsTableView) afterDelay:1.0];
NSLog(@"Finished");
}
私の NSLog はここにあります:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"Dictionary: %@", dataArray);
return [dataArray count];
}