如何将 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
。
我在我的一个视图控制器中设置了一个 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
。