Как нажимать / перебирать экземпляры coreData - PullRequest
0 голосов
/ 06 декабря 2011

вот еще один вопрос о как перейти к подробному просмотру, как в Mail-App от меня.Там я хотел знать, как решить эту проблему с массивом.

Теперь я использую coreData.У меня есть объект с именем EntityAlphabet, например, с 5 атрибутами.Атрибуты не имеют значения здесь.В DetailView я хочу повторить эту сущность. Как я могу это сделать?

Я хочу "переключить" сущности в detailView.

Кстати: я заполняю свой tableView с помощью NSFetchedResultsController.

Ответы [ 2 ]

1 голос
/ 06 декабря 2011

У меня точно такая же ситуация, и я только что передал массив управляемых объектов в detailView. Затем, основываясь на том, какие стрелки вверх / вниз они нажимают в подробном представлении, я выбираю соответствующий объект из массива. Так что это будет похоже на решение по ссылке, которую вы предоставили. Чтобы получить массив объектов, в вашем didSelectRowForIndexPath: метод сделайте что-то вроде следующего:

// Assumes your detail view controller has a an NSArray ivar and property setup 
detailViewController.alphabetObjects=[self.fetchedResultsController fetchedObjects];

Это решение явно низкотехнологичное, и я реализовал его из-за недостатка знаний в то время, то есть 2 года назад. Теперь я мог бы придумать пару дополнительных способов сделать это.

  1. Использовать обратные вызовы блоков для tableView, управляемого NSFetchedResultsController. Поэтому, когда вы используете метод didSelectRowAtIndexPath, вы предоставляете detailViewController блок, который в основном принимает indexPath и возвращает новый управляемый объект из NSFetchedResultsController.
  2. Создать протокол, который реализует tableViewController. С помощью различных методов протокола вы можете запросить новый объект, а также обновить интерфейс detailViewController. т.е. запрашивает, является ли это первым или последним объектом в наборе управляемых объектов.

Надеюсь, это поможет. Удачи

0 голосов
/ 06 декабря 2011

Вы можете использовать NSFetchedResultsController аналогичным образом. Попробуйте позвонить - (id)objectAtIndexPath:(NSIndexPath *)indexPath. Передайте ему newIndexPath, который вы уже используете в вашем - (IBAction)nextRow:(id) sender.

...