私はproductItemの構造体の配列によって移入されたUICollectionViewを持って、構造体の青写真は、これが動作し、私は成功し、それを私のUICollectionViewを取り込むことができます UICollectionViewの構造体の配列をDetailViewに渡し、インデックスを使用してある項目から別の項目に移動しますか?
struct ProductoItem {
let id: Int
let name: String
var price: String
var picture: String
var description: String
}
ProductoItem.swift
と呼ばれるそれ自身の迅速なファイルであるかIこの構造体をdetailViewに渡して、detailViewにこの変数を作成します。var productos = [ProductoItem]()
次に、prepareForSegueメソッドに次のコードを追加します。私が知っているのか分からない何
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "detalleProducto" {
let controller = segue.destination as! ProductoDetailViewController
controller.productos = productos
}
}
です:私たちは、構造体の配列全体を送信しているように私は移入するDetailViewにCollectionViewセルのインデックスに格納された値を渡したい
ファーストそれは製品のセルのデータだけを使用して、私はまた、私の構造体の次の/前のインデックス値に行く次/前の製品に行くための2つのボタンを持っている。これどうやってするの?
detailViewを開くために「didSelectItemAtIndexPath」を使用していますか? –
準備では、yourCollectionView.indexPathForCell(cell)を押したセルのインデックスを取得してから、インデックスを持つ配列からデータを取得できます。この質問をチェックしてください.http://stackoverflow.com/questions/31914213/how-to-make-prepareforsegue-with-uicollectionview – Yan
@RemyCiliaはい私はそうし、構造体を使用する代わりに辞書の配列を使用するとこれを行うことによって現在のインデックスパスを取得します。 let currentProduct = arrayOfDictionaries [indexPath.item]しかし、構造体を使って同じことをしようとすると、空の配列が得られます。 辞書の配列を使用していたときに、そのメソッドを実行する1つのオブジェクトのオブジェクトを取得できましたが、必要なのは構造体全体を持ち、選択したセルのインデックスの値を使用してこのビューでは、次の/前の製品に行くために2つのボタンがありますので、それらをクリックするとインデックスが変わります) –