#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 запрос по электронной почте и т.д…
Это не очень хорошо написанный ответ и может использовать неправильную терминологию, но, надеюсь, это поможет кому-то в том же положении, что и я.