Я пытался заставить это работать в течение приблизительно трех дней и сосредоточиться на этом. Может кто-нибудь посоветовать.
Я построил основы, и все они отлично работают, но когда я пытаюсь сделать это, я не могу обдумать это.
Я пытаюсь составить таблицу технических терминов из списка. Это индексированная таблица разделов по алфавиту.
Это прекрасно работает, но когда я пытаюсь добавить следующий уровень для определения каждого термина в новом viewcontroller, я не могу понять, что код или структура plist правильные.
На данный момент я создал два списка. Один со словарем алфавита в 26 массивах, в каждом массиве есть ряд технических терминов. Все это прекрасно работает.
Затем я создал еще один список определений в виде массива словарей, по одному для каждой пары слово / определение. Я ожидаю, что передам ключ @ "word" от контроллера представления к контроллеру detailview, а затем заберу @ "определение". Я не знаю, правильно это или неправильно (?)
Мой код отлично показывает таблицу технических терминов, но при выборе строки происходит сбой. Я знаю, что это связано с кодом для передачи ссылки на detailviewcontroller, чтобы detailview мог подобрать определение - но я понятия не имею, как его решить. Я разместил здесь части своего кода, чтобы кто-то мог взглянуть на помощь. Есть идеи?
NSString *wordPath = [[NSBundle mainBundle] pathForResource:@"newsortedglossary" ofType:@"plist"];
NSDictionary *wordDict = [[NSDictionary alloc] initWithContentsOfFile:wordPath];
self.words = wordDict;
[words release];
NSArray *wordArray = [[words allKeys] sortedArrayUsingSelector:@selector(compare:)];
self.wordKeys = wordArray;
NSString *definitionPath = [[NSBundle mainBundle] pathForResource:@"newnewdefinitionglossary" ofType:@"plist"];
NSDictionary *definitionDict = [[NSDictionary alloc] initWithContentsOfFile:definitionPath];
self.definitions = definitionDict;
[definitions release];
didSelectRow здесь .........
GlossaryDetailViewController *glossaryDetailViewController = [[GlossaryDetailViewController alloc]
initWithNibName:@"GlossaryDetailView" bundle:nil];
NSLog(@"did select-2"); // CRASHES HERE with NSDictionary may not respond to objectAtIndex
glossaryDetailViewController.definition = [self.words objectAtIndex:indexPath.row];
NSLog(@"did select-3");
[self.navigationController pushViewController:glossaryDetailViewController animated:YES];
NSLog(@"did select-4");
[glossaryDetailViewController release];
detailViewController здесь .......
- (void)viewDidAppear:(BOOL)animated {
NSLog(@"didappear");
self.glossaryWordDefinition.text = [definition objectForKey:@"definition"];