脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

[iOS] SwiftによるiPhoneアプリ開発入門(超初歩)その6 -条件による画面遷移の分岐-

同じボタンで、条件によって遷移先を変更する方法です

1、ストーリーボード上で画面を三つ用意し、

  • 最初の画面にはSegmented Controlと遷移するためのbutton
  • 次の遷移する二つの画面にはimageViewと戻るボタン用のbutton

をそれぞれ配置する
f:id:portaltan:20150721195715p:plain

2、最初の画面のviewControllerの一番左上のアイコンから次の二つの画面へそれぞれセグエを作成する(この時セグエの種類はcustomを選択)
f:id:portaltan:20150721195826p:plain

3、セグエの途中にある中かっこをクリックして、それぞれのidentifierに名前をつける
(今回はgoatとsheep)
f:id:portaltan:20150721200027p:plain

4、最初の画面のSegmented Controlをアウトレット接続、ボタンをアクション接続する

    @IBOutlet weak var segment: UISegmentedControl!
    
    @IBAction func nextPageButton(sender: UIButton) {
    }

5、戻るボタン用のunwindセグエメソッドを作成して、連結させる

    @IBAction func unwind(sender: UIStoryboardSegue) {
        
    }

6、最初の画面のViewControllerで、segmented Controlに設定したidentifierを配列に格納する

    let segueIdentifiers = ["sheep", "goat"]

7、ボタンクリック時に、上記のidentifierを選択して遷移するよう実装する

    @IBAction func nextPageButton(sender: UIButton) {
        // 選択されているSegment Controlのindexから、"sheep"か"goat"を取得する
        let next = segueIdentifiers[segment.selectedSegmentIndex]

        // 上記の情報をもとに、実際にidentifiewを指定して遷移する
        performSegueWithIdentifier(next, sender: sender)
    }
  • 最後のsender: senderはどの部品でこのアクションが起こったのかを示すものであり、今回はUIButtonなので、仮引数のsenderをそのまま使う