У меня есть запрос 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];
}
Спасибо - у меня есть это, и он делает нажатие, однако результирующая страница - это просто «имя» cell.textLabel.text = [dict objectForKey: @ "name"]; Я хочу показать имя вместе со всем остальным в массиве. –
Что вы нажимаете на этот метод? Если вы нажмете другой контроллер табличного представления, вам нужно будет настроить каждую строку как отдельную строку данных. Или вы можете создать свой собственный вид с помощью UILabels, который вы заполните, в своем пользовательском подклассе UIViewController. – lucius
Я нажал еще один контроллер представления, у меня возникли проблемы с этой точной проблемой, у меня должен быть отдельный контроллер представления, потому что в представлении есть пара элементов, кроме таблицы подробностей, я думаю, мой вопрос должен быть: как установить поместить отдельные ячейки для каждого из элементов массива из приведенной выше таблицы? –