swiftのsegueの遷移ができない場合の対処法!戻る時はどうする?

swiftのsegueの遷移ができない場合の対処法!戻る時はどうする?

iOSアプリ開発で必要不可欠なものとして、画面遷移がありますよね。この画面遷移はstoryboard上でsegueを設定することで簡単にできます。segueとは、下の画像のように、画面と画面を繋ぐ矢印のことです。正確には「画面から画面の遷移や接続を管理しているもの」と言った役割になります。

セグエの遷移方法

今回は、segueを使って画面遷移を行う方法と、元の画面に戻る方法をご紹介していきます。その中で、僕がつまづいたセグエをドラッグ&ドロップできない場合の対処法も説明していますので、ご参考いただければです。

swiftのsegueで遷移できない場合の対処法!

それでは、やっていきましょう!

まずは、Xcodeを立ち上げて「Create a new xcode project」を選択してください。

Xcodeの使い方

「Single View Apllication」を選択し、「Next」をクリックしてください。

xcodeの立ち上げ方

Product Nameを適当に入力して、そのほかはデフォルトのままでいいです。終わりましたら「Next」をクリックしてください。

xcodeの始め方

プロジェクトが立ち上がりますので、左サイドバーの「Main,storyboard」を開いてください。その後、右下の「View Contoroller」をストーリーボードにドラッグ&ドロップしましょう。

swiftのストーリーボード

ドラッグ&ドロップをすると、画面が2つになります。分かりやすくするために追加した画面の色を変えてみましょう。左サイトバーの「View」を選択して、右サイドバーの「Inspecter Pane」をクリックしてください。そして、Background項目で色を変えていきましょう。

xcodeのセグエの遷移方法

画面遷移のトリガーとなるボタンを設置していきます。右下の検索バーで「Button」と検索してください。そして、Buttonを画面にドラッグ&ドロップするとボタンが設置されます。

xcodeのボタンの設置方法

ここがポイントです。commandキーと右クリックを押しながら、遷移先の画面にドラッグ&ドロップをしてください。そうすると、セグエの設定画面が表示されるので「Present Modally」を選択しましょう。

swiftのsegueで遷移方法

ここまで出来たら、command+Rキーを押して、シュミレータを立ち上げてください。そして「Button」を押してみましょう!

segueの遷移方法

画面が遷移していることが分かります。

セグエの遷移が出来ない時は?

swiftのsegueで戻るときの方法!

続きまして、戻るボタンを設置してみましょう!出来ましたら、左サイドバーの「View Contoroller.swift」を開きます。

segueで戻るボタンを作成してみよう!

え、さっきみたいにsegueを設定するだけじゃダメなの?

それだと白い画面が2つ出来てしまうので、無駄になってしまいます。なので、元の画面に戻るという設定を行ってあげる必要があります。

それでは、View Contoroller.swiftのクラス内に下のコードを入力してください。今の所はおまじないと思っておきましょう!

@IBAction func unwindToTop(segue: UIStoryboardSegue){
}

出来ましたらMain.storyboardを開いて、ViewContorollerを選択してください。そして、右サイドバーのclassを「View Contoroller」に設定しましょう。

segueの戻る処理を実装してみた

終わりましたら、ボタンをcommand+右クリックで、上の3つ並んでいる右側のアイコンにドラッグしてあげましょう。そうすると、セグエの設定が表示されますので先ほど作った「unwindToTop」を選択してください。

セグエの戻る処理

これで完成なので、シュミレータで確認してみましょう。


無事できていることが確認できました。

まとめ

いかがでしたでしょうか?画面遷移は基本なので、しっかりと抑えていきましょう。

別記事でxcodeの実機テストの方法を実体験から書いていますのでチェックしてみてくださいね!

 気ままなQOL 
気ままなQOL
https://yuh-07.com/programing/xcode-zikki-dekiru.html
生活を楽しく便利にする情報を気ままに配信しています。

ブログランキング・にほんブログ村へ
にほんブログ村

コメントを残す

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