ios - 显示在 Collection View Controller 之间选择的图像

标签 ios swift xcode struct didselectrowatindexpath

我在 First Collection View Controller 中有如下结构

struct Area{
    var name = String()
    var image = String()  
}
var area = [Area]()

并且在第二个 Collection View Controller

struct AreaSelected {
   var imageSelected = String()
}
 var areaSelected = [AreaSelected]()

我想在 Second Collection View Controller 中显示从 First Collection View Controller 中选择的图像。

所以我这样做是为了将它们导航到位于 didSelectItemAt indexPath 的 Second Collection View Controller

   let indexPaths = self.areaCV!.indexPathsForSelectedItems!
   var indexPath = indexPaths[0] as IndexPath
   let detailViewController = self.storyboard?.instantiateViewController(withIdentifier: "SVC") as? SecondViewController
   detailViewController?.areaSelected = [self.area[(indexPath as NSIndexPath).item]]

他们我得到以下编译器错误

Cannot convert value of type 'Area' to expected element type 'AreaSelected'

如何摆脱这个错误?

最佳答案

基本上

 let selectedArea = self.area[(indexPath as NSIndexPath).item]
 detailViewController?.areaSelected = [AreaSelected(imageSelected: selectedArea.name)]

PS:您在不同的 View Controller 中使用不同的(不兼容的)类型,因此绝对不能直接将其分配给彼此。

PSS:在 ViewController 之间的 CellSelected 上设置 segue 更容易、更清晰、更好,并在 func prepare(for segue:UIStoryboardSegue, sender: Any?) 中分配 areaSelected

关于ios - 显示在 Collection View Controller 之间选择的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48993477/

相关文章:

ios - 来自 UIActivityType 的 UIActivity

objective-c - 使用 xcode 将 Flash 文件作为 OSX 屏幕保护程序

ios - 子类中的 Objective-C 只读属性

ios - 如何更改 mac 终端查找特定程序的位置?

ios - 从 Swift 3 调用具有 IAM 授权的 API 网关方法

ios - 使用 viewDidAppear 自动登录不利用导航 Controller

ios - 我退出 ipa,打开它时,它会关闭应用程序

iphone - CGRect 与多个 CGRect 的碰撞

iphone - iOS 7 模态显示在状态栏下方

ios - 苹果可以在我的应用程序中批准信用卡表格吗?