Как мне создать подробное представление для моего UITableView, чтобы я мог редактировать данные в Core Data?

#iphone #objective-c #ios #uitableview #core-data

#iPhone #objective-c #iOS #uitableview #core-data

Вопрос:

Я новичок в iOS, Objective-C и раньше занимался лишь небольшим количеством OO-программирования, но мне нравится задача создания этого приложения.

Краткое описание приложения: У меня есть представление, которое является просто формой для ввода информации в базу данных Core Data, например. Имя, адрес и телефон. Затем другое представление, содержащее табличное представление, в котором перечислены все имена людей, находящихся в данный момент в базе данных.

Однако именно здесь я застрял…

Я создал подробное представление, так что, когда пользователь выбирает ячейку таблицы, загружается подробное представление, но я хочу получить данные из Core Data обратно в форму, которую они использовали для первоначального ввода данных, чтобы их можно было изменять / редактировать и повторно сохранять обратно в Core Data.

Каковы наилучшие методы выполнения этого?

Мне нужно будет передать некоторые данные в подробное представление, я знаю, как это сделать, но что я должен передать? как мне указать подробному представлению, какую строку данных в базе данных Core Data я хочу загрузить?

Должен ли я передавать значение tableview indexPath.row? соответствует ли это чему-либо, что я могу отфильтровать в CoreData при загрузке подробного представления?

Заранее спасибо всем, кто ответит, был бы признателен за любую помощь от методологии до онлайн-подсказок

Мэтт

Ответ №1:

Я думаю, вы можете увидеть пример кода Apple здесь: пример кода CoreRecipes

Комментарии:

1. Я уже рассматривал это раньше, пытаясь найти ответ на этот вопрос перед публикацией. Этот проект содержит много другого кода и методов. Мне было трудно попытаться понять, что мне от него нужно. Попробую еще раз, хотя.

Ответ №2:

Выбрав биты из примера кода CoreRecipes, как предложил Теронин, я сделал следующее.

Создайте iVar объекта Core-Data DataModel на DetailedViewController

 DataStore *enquiry;
  

В представлении tableview в разделе Настройка didSelectRowAtIndex Core-Data Объект DataModel и контроллер подробного представления,

 DataStore *enquiry = (DataStore *)[_fetchedResultsController objectAtIndexPath:indexPath];

ShowEnquiryDetail *detailViewController = [[ShowEnquiryDetail alloc] initWithNibName:@"ShowEnquiryDetail" bundle:nil ];
  

установите объект модели данных в DetailedViewController

 detailViewController.enquiry = enquiry;
  

затем включите DetailedViewController в стек навигации.

 [self.navigationController pushViewController:detailViewController animated:YES];
  

Затем в DetailedViewController вы можете получить доступ к данным в объекте DataModel из выбранной строки в Core-Data с помощью enquiry.name запрос по электронной почте и т.д…

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