我在一个视图控制器中设置了一个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
senderprepare(for:sender:)参数表示它可以是Any?,但实际上,它不是很有用,因为您无法确定它将是什么。您必须使用委托的IndexPath方法从iCarouselDelegate中获取iCarouselDelegate(如果它实现carousel(_:,didSelectItemAtIndex:),则可能是您自己的视图控制器)。

关于ios - 如何将图像/数据从iCarousel传递到新的 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50422241/

10-11 03:43