У меня есть UICollectionView с UIImageView в качестве заголовка (с именем AddPhotoHeader
).Фон имеет серый цвет, но как только изображение выбрано в следующем контроллере (с именем PhotoSelectorController
), оно должно вернуться к исходному UICollectionView с изображением в UIImageView.
Это в AddPhotoHeader
:
var selectedImage: UIImage? {
didSet {
DispatchQueue.main.async {
self.imageView.image = (self.selectedImage)!
print("This is the selectedImage:", (self.selectedImage)!)
}
imageView.backgroundColor = .white
}
}
let imageView: UIImageView = {
let iv = UIImageView()
iv.backgroundColor = UIColor.rgb(red: 234, green: 246, blue: 246)
iv.contentMode = .scaleAspectFill
iv.clipsToBounds = true
return iv
}()
В PhotoSelectorController
, вот где фотографии выбираются:
fileprivate func fetchPhotos() {
let allPhotos = PHAsset.fetchAssets(with: .image, options: assetsFetchOptions())
DispatchQueue.global(qos: .background).async {
allPhotos.enumerateObjects({ (asset, count, stop) in
let imageManager = PHImageManager.default()
let targetSize = CGSize(width: 200, height: 200)
let options = PHImageRequestOptions()
options.isSynchronous = true
imageManager.requestImage(for: asset, targetSize: targetSize, contentMode: .aspectFit, options: options, resultHandler: { (image, info) in
if let image = image {
self.images.append(image)
self.assets.append(asset)
if self.selectedImage == nil {
self.selectedImage = image
}
}
if count == allPhotos.count - 1 {
DispatchQueue.main.async {
self.collectionView?.reloadData()
}
}
})
})
}
}
После того, как пользователь выбирает фотографию и нажимает «Далее», эта функция вызываетсяпоместить изображение в UIImageView AddPhotoHeader
@objc func handleNext() {
let addPhotoHeader = AddPhotoHeader()
addPhotoHeader.selectedImage = header?.photoImageView.image
navigationController?.popViewController(animated: true)
}
И оператор печати в selectedImage
распечатывает:
This is the selectedImage: <UIImage: 0x6000028510a0>, {485, 482}
Но он просто остается серым прямоугольникомв UIImageView AddPhotoHeader
нет изображения, я чувствую, что здесь упущен очевидный шаг, но я просто не смог понять это.Надеюсь, вы можете помочь мне!Спасибо!