45221


// Cell が選択された場合

[code]

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let cell = collectionView.cellForItem(at: indexPath)
        cell?.layer.borderColor = UIColor.gray.cgColor
        cell?.layer.borderWidth = 2
        selectedImage =  self.elementsImage[indexPath.row]
        if selectedImage != nil {
            performSegue(withIdentifier: "toSubPviewController",sender: nil)　　　- - - ①
    }
    
[/code]

// Segue 準備 - - - ②

[code]

    func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if (segue.identifier == "toSubPviewController") {
            let subVC: SubPViewController = (segue.destination as? SubPViewController)!
            // SubViewController のselectedImgに選択された画像を設定する
            subVC.selectedImage = selectedImage
            }
        }
    }
    
[/code]

※ 画面はshowmodalでつなぎ
segueのidentifierは"toSubPviewController"をセットしていますが①からSegue準備(prepare)に処理がいかず次の画面のviewDidLoadに飛んでいく為に  
(prepare内の)subVC.selectedImage = selectedImageがセットされない状態です。

因みに②をoverride funcすると'override' can only be specified on class
membersというエラーになってしまいます。


CC BY-SA 4.0
2018-07-01T03:00:32.153
45200
2018-07-01T23:00:15.543
2018-07-01T03:28:06.207
26811
26811
question
swift xcode swift3 swift4
swift collectionViewを使い画面遷移したいのですが、上手くいきません。


}の場所が一行違った為でした。  
override func prepareのエラーがなくなる事で解決しました。申し訳ございません。


CC BY-SA 4.0
2018-07-01T23:00:15.543
45221
2018-07-01T23:00:15.543
26811
45200
answer