Предполагая, что я понимаю ваш вопрос.
Вы можете сделать что-то вроде:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *muscle = [muscles objectAtIndex:indexPath.row]; //'muscles' array is the first level of your plist
...
ExerciseTableViewController *detailViewController = [[ExerciseTableViewController alloc] initWithNibName:muscle bundle:nil];
detailViewController.muscle = muscle;
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
...
}
И во втором контроллере:
...
NSString *path = [[NSBundle mainBundle]pathForResource:@"biceps" ofType:@"plist"];
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
self.exerciseArray = [plistDict objectForKey:muscle]; //'muscle' is the string you set in the previous controller
[plistDict release];
...
Надеюсь, это поможет.
Редактировать после комментария Фейсала:
Используя следующий файл списка: Для чтения этого списка вы можете сделать:
//Read the plist file into an array (the root element is an array)
NSString *path = [[NSBundle mainBundle]pathForResource:@"Data" ofType:@"plist"];
NSArray *rootLevel = [[NSMutableArray alloc]initWithContentsOfFile:path];
Затем дляпрочитайте второй уровень, содержимое 'rootLevel':
NSDictionary *secondLevel = [rootLevel objectAtIndex:0];
NSString *muscle = [secondLevel valueForKey:@"name"]; //"Biceps" string
NSArray *exercises = [secondLevel valueForKey:@"exercises"]; //[exercises objectAtIndex:0] is "Biceps Curl" string