Categories
SugiBlog ホームページ制作・システム開発

Segueの条件分岐

TableViewやCollectionViewを使っているとき、タップしたセルによって遷移するシーンを分岐したい時の方法をご紹介します。
今回はCollectionViewを使っています。

以下の画像のような状態にしたいと思います。

通常、セルからcontrol+ドラッグでセグエを設定するかと思いますが、それだとどちらかのシーンにしかセグエを設定できません。
そのため、View Controllerからセグエを設定します。


ドキュメントアウトラインにてView Controllerを選択し右クリックします。
[Triggered Segues]-[manual]の+をcontrol+ドラッグし遷移したい1つ目のView Controllerでドロップします。

表示方法はShowを選択。

同様に2つ目のView Controllerにも設定します。

すると先ほどのTriggered Seguesのところに2つのView Controllerへのセグエが表示されます。


出来たセグエを選択し、それぞれにIdentifierを設定します。
ここでは1つ目が「Table」、2つ目が「Map」とします。
遷移元のViewController.swiftに以下のコードを追記します。

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    if [条件] {
        performSegue(withIdentifier: "Table", sender: self)
    } else {
        performSegue(withIdentifier: "Map", sender: self)
    }
}

以上で完成です。

Xcode: 8.3.1
Swift: 3.1
OS: Sierra 10.12

81 views

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*