【Swift/Xcode】モーダルを表示する【超初心者向け】

もくじ

準備

ViewControllerを設定

ViewControllerを追加して2つ用意します。わかりやすいように背景色をつけています。

f:id:bonoponz:20210427194037p:plain

そして説明用に画面をA Bと呼ぶことにします。

f:id:bonoponz:20210427194147p:plain

エリアの名称についても説明時に使いたいので覚えておきましょう。

f:id:bonoponz:20210427195124p:plain

ViewControllerのファイル作成

ナビゲータエリアのフォルダで右クリックしてNew Fileします。

f:id:bonoponz:20210427194335p:plain

Cocoa Touch Classを選び、

f:id:bonoponz:20210427195237p:plain

NextViewControllerと名付けます。

f:id:bonoponz:20210427195322p:plain

Controllerを割り当てる

ナビゲータエリアでMain.storyboardを選択するとストーリーボードを確認できます。

f:id:bonoponz:20210427194147p:plain

Bの上部にあるボックスをクリックするとユーティリティエリアClassを設定できるので、先ほど作成したNextViewControllerを設定します。

f:id:bonoponz:20210427200349p:plain

これで準備が整いました。

モーダルを出す

Buttonを設置してドラッグするだけで画面遷移することができます。画面遷移というよりは別の画面を出現させるだけです。プログラミングは不要です。

まずA画面にButtonを設置します。moveボタンとします。

f:id:bonoponz:20210427201740p:plain

ボタンをクリックして選択した状態でctrlを押しながらB画面にドラッグします。(右クリックでドラッグでも可)

f:id:bonoponz:20210427203019p:plain

選択肢が現れるのでpresent Modallyを選択します。

f:id:bonoponz:20210427203047p:plain

遷移したことがわかりやすいように、B画面にLabelをはっておきます。

f:id:bonoponz:20210427202124p:plain

ビルド(右上の▶︎ボタン)してmoveボタンを押すと、下からモーダルが出て「成功!」と表示されるはずです。

モーダルの出現方法を変更 - transition -

ボタンをドラッグしてpresent Modallyを設定したときに自動的に付加したセグエを利用します。

f:id:bonoponz:20210427203556p:plain

セグエをクリックしてユーティリティエリアtransitionを開きCross Dissolveを選択します。

f:id:bonoponz:20210427203807p:plain

シミュレータで確認すると、モーダルの現れ方がさきほどを違うのがわかると思います。

モーダルをフルスクリーンに変更 - presentation -

今度はpresentationを変更しましょう。

f:id:bonoponz:20210427204328p:plain

Full Screenを選択します。

f:id:bonoponz:20210427204410p:plain

すると、ストーリーボードも表示がかわりましたね。B画面の上部にあったモーダル画面の奥?の黒い部分がなくなってフルスクリーンになりました。

f:id:bonoponz:20210427204524p:plain

シミュレータで確認すればすぐわかりますが、これではモーダルを出すともう戻れませんね。戻るボタンを設置していきましょう。

ボタンを設置して戻る

Bの画面に戻るボタン設置します。

f:id:bonoponz:20210428102232p:plain

B画面のどこでもいいのでクリックしてassistantを選択しswiftファイルを開きます。

f:id:bonoponz:20210428103221p:plain

こんなかんじ。

f:id:bonoponz:20210428103247p:plain

Buttonを右クリックでNextViewControllerクラス内の最後らへんにドラッグします。

f:id:bonoponz:20210428110422p:plain

backButtonと名付けます。

f:id:bonoponz:20210428110229p:plain

backButtonメソッドの中で一行追加するだけで完成です。

dismiss(animated: true, completion: nil)

f:id:bonoponz:20210428110716p:plain

ビルドして確認してみてください。

初心者がやりがち?!やってはいけない操作

画面遷移した画面で前の画面に戻るボタンをドラッグして連結してしまうことはやめましょう。

単純に画面遷移したいならこの方法でかまいませんが、戻るボタンとしたい場合はご法度だと思っておいてください。

f:id:bonoponz:20210428103731p:plain