Глядя на ваш Data3.plist, я вижу, что это словарь из 2 элементов.
- Первый элемент - NSArray с ключом: Rows
- Второй элемент - строка NSString с ключом: Title
Так что в вашем - (void)viewDidLoad
ваш код неверен.Это должен быть правильный код:
- (void)viewDidLoad {
[super viewDidLoad];
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Data3" ofType:@"plist"]];
// get the Rows object
NSArray *rows = [dictionary objectForKey:@"Rows"];
// The array object contains 3 NSDictionary
NSDictionary *firstItem = [rows objectAtIndex:0]; // I am just getting the first item
// once I have the dictionary, which have 2 items, Subtree & title
NSArray *subtree = [firstItem objectForKey: @"Subtree"];
// subtree object is NSArray with 3 NSString object, therefore you have to use index
description.text = [NSString stringWithFormat:@"%@",[subtree objectAtIndex:2]];
}
Теперь, если вы хотите передать данные следующему контроллеру, вы должны добавить свойство к вашему LocationsReviewViewController
объекту.
В вашем LocationsReviewViewController.h:
// declare an ivar
NSDictionary *data;
// declare property
@property (nonatomic, retain) NSDictionary *data;
В вашем LocationsReviewViewController.m:
@synthesize data;
Когда вы выделяете объект LocationsReviewViewController:
- (void) tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath;
{
NSDictionary *rowData = [[[tableData objectAtIndex: indexPath.section] objectForKey: @"Rows"] objectAtIndex: indexPath.row];
LocationsReviewViewController *nextViewController = [[LocationsReviewViewController alloc]init];
nextViewController.data = rowData; // pass in your dictionary to your controller
nextViewController.title = [rowData objectForKey: @"Title"];
[self.navigationController pushViewController: nextViewController animated: YES];
}