如何将 image/data 从 iCarousel 传递给新的视图控制器

How to pass image/data to new view controller from iCarousel

我在我的一个视图控制器中设置了一个 iCarousel,我想简单地将用户点击的相同图像传递到下一个视图控制器。这是我在 Carousel VC:

上的 prepareForSegue 中的内容
 var padIndex = [UIImage]()

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {



   let nextVC = segue.destination as! BlackViewController

   let indexPath = sender as! NSIndexPath

    nextVC.pad = self.images[indexPath.row]
}

然后在我的第二个VC我有:

var pad = UIImage()

@IBOutlet weak var padImage: UIImageView!

 override func viewDidLoad() {
    super.viewDidLoad()

     padImage.image = pad
}

看起来很简单,但我一直收到错误消息:

Could not cast value of type 'SampleSequencer.ChooseViewController' (0x10213fe38) to 'NSIndexPath' (0x1025b8440).

提前致谢!!

异常告诉您您进行了非法转换。错误在这里:

let indexPath = sender as! NSIndexPath

prepare(for:sender:)sender 参数说它可以是 Any?,但实际上,它不是很有用,因为你不能确定它会是什么。您必须使用委托的 carousel(_:,didSelectItemAtIndex:) 方法从 iCarouselDelegate(这可能是您自己的视图控制器,如果它实现了 iCarouselDelegate)获取 IndexPath