Привет и добро пожаловать!

Это третья статья про CoreData, если вы не читали предыдущую, оставлю ссылку Удалить элементы из CoreData

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

В предыдущей статье мы сделали простое приложение списка дел, теперь давайте добавим больше атрибутов к этой сущности, чтобы пользователь мог вводить новые данные, а затем мы создадим подробное представление, вы можете найти начальный проект в моем Гитхаб

Давайте начнем, откройте файл TestApp.xcdatamodeld и найдите объект Item. После того, как вы нашли его, вам нужно выбрать его и добавить новый атрибут с именем date, используя тип Date и еще один с именем комментарий введите string.

Теперь, когда мы добавили эти атрибуты, нам нужно перейти к Item+CoreDataProperties.swift и добавить следующее к расширению Item.

После первой публичной переменной @NSManaged мы собираемся объявить дату и комментарий, как и первая переменная, используя выбранный тип. Вы собираетесь использовать Date? для даты и String? для строки.

Далее у нас есть общедоступная переменная с именем wrappedName, нам нужно сделать то же самое для нового строкового значения « comment », вы можете назвать его wrappedComment и тип String. и, конечно же, используйте комментарий вместо имени.

Теперь код должен выглядеть так:

Теперь пользователь может добавить два новых типа информации, комментарий и выбранную дату.

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

Наконец, мы изменим функцию, чтобы сохранить комментарий и дату. Обратите внимание, что старые элементы не будут отображать комментарии или даты.

Запустите приложение, и оно должно выглядеть так:

Хорошо, приложение не очень красивое, но этомы исправим в конце этого руководства. Я немного улучшу его, и вы, возможно, узнаете что-то новое.

Создайте новый файл Swift и назовите его DetailView, создайте представление по своему усмотрению, на данный момент я пытаюсь сделать его простым, поместите все элементы, которые вы хотите показать, в данном случае заголовок, комментарий и дату.

Как только мы получим эту работу, нам нужно отправить пользователя к деталям, когда он нажимает элемент. Это легко сделать, нам нужно поместить модель представления элемента в NavigationLink, который отправляет в DetailView, сделайте это следующим образом:

Запустите приложение, и теперь вы должны увидеть шеврон сразу после элемента, так работает navigationLink. Щелкните в любом месте элемента, и вы перейдете к подробному просмотру.

Улучшение

Чтобы сделать его лучше, я собираюсь перевести текстовые поля, средство выбора данных и кнопку в модальное представление. Я скоро сделаю статью о модальных представлениях.

Вот как я это сделал:

Конкурсный проект доступен на моем Github.

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