【发布时间】:2016-10-07 07:53:33
【问题描述】:
我有一个视图控制器,它收集信息,包括向记录添加多张照片的能力。随着每张照片的添加,新照片将显示为特色照片(VC 内的故事板 UIImageview)。每张照片还应该添加到图像数组中,然后将其传递给具有自己自定义视图控制器的容器视图,并显示出来。添加每张照片时,会显示特色照片,但容器不会重新加载图像。
当一组现有照片通过 prepare for segue 方法传入时,照片容器似乎确实可以工作,如下所示:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if (segue.identifier == "segueToPhotoCollection")
{
if let imagesArray = images
{
print("photos prepared")
let controller = (segue.destinationViewController as! PhotoCollectionVC)
controller.images = imagesArray
controller.delegate = self
}
}
如果没有照片,容器仍会加载(并打印“容器已加载,但没有照片”)。
class PhotoCollectionVC: UICollectionViewController
{
var images: [UIImage]?
weak var delegate: FeatureImageController?
override func viewDidLoad()
{
super.viewDidLoad()
if images?.count > 0
{ print("container loaded with photos: \(images!.count)") }
else { print ("container loaded, but no photos") }
我需要以某种方式调用 prepareForSegue 方法,或者在添加图像后找到另一种方法来更新和重新加载容器。选择器 didFinishPickingMediaWithInfo 看起来像:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
{
picker.dismissViewControllerAnimated(true, completion:
{
var imageTaken = info[UIImagePickerControllerEditedImage] as? UIImage
...
if let imageTakenNotNil = imageTaken
{
if self.images == nil
{ self.images = [] }
self.images?.append(imageTakenNotNil)
然后一行会以某种方式将该图像数组重新传递给容器。我需要委托方法吗?!?
【问题讨论】:
标签: ios swift uistoryboardsegue uicontainerview