我在一个视图控制器中设置了一个iCarousel,我只想将用户点击的同一个图像传递到下一个视图控制器。以下是我在旋转木马VC上准备的内容:
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
}
看起来很简单,但我一直有个错误说:
无法将“SampleSequencer.ChooseViewController”(0x10213fe38)类型的值强制转换为“NSIndexPath”(0x1025b8440)。
万分感谢!!
最佳答案
唯一的例外是告诉你你有一个非法演员。错误就在这里:let indexPath = sender as! NSIndexPath
sender
的prepare(for:sender:)
参数表示它可以是Any?
,但实际上,它不是很有用,因为您无法确定它将是什么。您必须使用委托的IndexPath
方法从iCarouselDelegate
中获取iCarouselDelegate
(如果它实现carousel(_:,didSelectItemAtIndex:)
,则可能是您自己的视图控制器)。
关于ios - 如何将图像/数据从iCarousel传递到新的 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50422241/