Таким образом, все, что вам действительно нужно, - это структура данных, которая позволяет вам хранить ваши данные и передавать их между контроллерами представления. Простым подходом было бы иметь:
struct PictureDetail {
photo: UIImage
text: String
}
В зависимости от объема / размера изображений, вам, вероятно, лучше фактически держать фотографии в виде файлов и просто сохранять путь к файлу в структуре и иметь вычисленныйсвойство, которое извлекает его с диска:
struct PictureDetail {
photoPath: URL
text: String
photo: UIImage {
// load photo from URL & return
}
}
. Вам нужна какая-то форма сбора, чтобы хранить все ваши данные и позволять вводить их туда, где это необходимо
class DataModel {
var pictureData: [PictureDetail] = []
func addPictureDetail(picture: UIImage, text: String) {
//save picture to disk and obtain URL
pictureData.append(PictureDetail(url: url, text: text)
}
Тогдасоздать экземпляр модели данных в вашем начальном контроллере представления
let dataModel = DataModel()
, а затем иметь свойство DataModel в других VC и ввести значение во время использования метода prepare(for segue: IUSegue)
.