2010-06-04 3 views
0

У меня есть запрос NSURL, который возвращает массив «имя» и «телефон», «и т. Д.» ... Ключ «имя» отображается на главном таблицу, но мне трудно понять, как заставить остальную часть массива отображаться в таблице подробностей, когда я выбираю строку. (У меня есть DetailerTableViewController, работающий, чтобы принять представление). Любая помощь будет оценена по достоинству.Включение дополнительных строк в этом массиве JSON в деталь UITableView

Спасибо,

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
return [rowsArray count]; 
NSLog(@"row count: %@",[rowsArray count]); 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
} 

NSDictionary *dict = [rowsArray objectAtIndex: indexPath.row]; 

    cell.textLabel.text = [dict objectForKey:@"name"]; 
    cell.detailTextLabel.text = [dict objectForKey:@"loginName"]; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 


return cell; 
} 

- (void)viewDidLoad { 
[super viewDidLoad]; 

self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.0/255.0 green:207.0/255.0 blue:255.0/255.0 alpha:1.0]; 
self.title = NSLocalizedString(@"Master", @"Master"); 
NSURL *url = [NSURL URLWithString:@"http://10.0.1.8/~imac/iphone/jsontest.php"]; 
NSString *jsonreturn = [[NSString alloc] initWithContentsOfURL:url]; 

NSLog(jsonreturn); // Look at the console and you can see what the results are 

NSData *jsonData = [jsonreturn dataUsingEncoding:NSUTF32BigEndianStringEncoding]; 
NSError *error = nil; 

// In "real" code you should surround this with try and catch 
NSDictionary * dict = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error]; 
if (dict) 
{ 
    rowsArray = [dict objectForKey:@"member"]; 
    [rowsArray retain]; 
} 


NSLog(@"Array: %@",rowsArray); 
NSLog(@"count is: %i", [self.rowsArray count]); 


[jsonreturn release]; 

} 

ответ

1

Вы должны реализовать:

- (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

обрабатывать выбор строк и нажать на контроллер представления для представления деталей.

+0

Спасибо - у меня есть это, и он делает нажатие, однако результирующая страница - это просто «имя» cell.textLabel.text = [dict objectForKey: @ "name"]; Я хочу показать имя вместе со всем остальным в массиве. –

+0

Что вы нажимаете на этот метод? Если вы нажмете другой контроллер табличного представления, вам нужно будет настроить каждую строку как отдельную строку данных. Или вы можете создать свой собственный вид с помощью UILabels, который вы заполните, в своем пользовательском подклассе UIViewController. – lucius

+0

Я нажал еще один контроллер представления, у меня возникли проблемы с этой точной проблемой, у меня должен быть отдельный контроллер представления, потому что в представлении есть пара элементов, кроме таблицы подробностей, я думаю, мой вопрос должен быть: как установить поместить отдельные ячейки для каждого из элементов массива из приведенной выше таблицы? –

Смежные вопросы