サトリク
この講座では、
storyboardファイルと、プログラムファイルの関係性
storyboardファイル
storyboardファイルとは、〇〇.storyboardという名前のファイルのことをいいます。
プログラミングコードを書かずに(GUIで)、画面のレイアウトを作成できるファイルです。設計書みたいなイメージですね。
プロジェクトを作るとデフォルトで、Main.storyboardがあります。これが、Storyboardファイルです。
プログラムファイル
プログラムファイルとは、〇〇.swiftという名前のファイルのことをいいます。
このファイルは、プログラムコードを書くファイルです。
新規プロジェクトを作成すると、デフォルトで〇〇.swiftファイルは、以下の3つあります。
- AppDelegate.swift
- SceneDelegate.swift
- ViewController.swift
3つありますが、初心者はViewController.swift
意外いじることはありませんので、AppDelegate.swift
とSceneDelegate.swift
無視しましょう。
Storyboardとプログラムファイルの関係
基本的には、「プログラムファイル」と「storyboardの1つの画面」はセットです。
この考え方がアプリ開発において最も重要なことです。
では、セットになっていることを確認してみましょう。
プロジェクト作成すると、デフォルトでMain.storyboard
の1つの画面とViewController.swift
が紐づいています。
①画面のバーをクリック
② (Show the Identity inspector)を選択
③Classのところに書かれているのが、その画面に紐づいているプログラムファイル
ViewControllerと書いているので、このMain.storyboardの1つの画面とViewController.swiftは紐づいているということがわかりました。
プロジェクトを作成
まずは、プロジェクトを作成していきましょう。
下のDockからXcodeを起動しましょう。
もうすでにXcodeを開いている方は、command + shift + 1を押しましょう。
「Create a new Xcode project」を選択
①「App」を選択
②「Next」をクリック
①「Product Name」にFilesRelationship
と入力
②「Interface」でStoryboardを選択
③「Language」はSwiftを選択
④全てチェックなし
⑤「Next」をクリック
(そのほかは任意)
Practiceフォルダを選択しましょう。
Storyboardでボタンを追加
では、Storyboardにボタンを追加した時の関係性について解説します。
Storyboardでボタンの名前を変更する
まず、Storyboardにボタンを追加します。
①右上のプラスボタンをクリック
②Buttonをボードの真ん中にドラッグ&ドロップ
これでボタンを配置できました。
文字を変えてみましょう。わかりやすいようにFontサイズも大きくします。
①Buttonを選択
② (Show the Attribute inspector)をクリック
③「Title」をボタン
に変更、「Font」をSystem 30.0
に変更
①iPhone11に変更
②再生ボタンで実行
このように、カタカナでボタンと表示されるはずです。
Storyboard上で、レイアウトを変えるのはとても簡単です。
しかし、処理によってボタンの名前を変更する時とかは、コード上で変えないといけません。
では次はコードで変更する方法を解説していきます。
コードでボタンの名前を変更する
では、コード上でButtonの名前を変えていきましょう。
まず、Storyboardのボタンとコードを紐づけるために、画面を2分割にします。
①ボードの上のバーをクリック
②command + option + control + enterで2分割表示
②のショートカットキー打つと、選択しているボードと紐づいているプログラムファイルを2分割で表示します。
controlを押しながら、10行目と11行目の間にドラッグ&ドロップ
①「Name」にbutton
と入力
②「Connect」をクリック
16行目あたりに以下のコードを追加しましょう。
button.setTitle("ボタン", for: .normal)
この1行で、ボタンの名前をぼたん
に変更しました。
左上の再生ボタンを押すか、commaand + rで実行してみましょう。
このように、ひらがなのぼたんが表示されるはずです。
Storyboardでカタカナでボタン
と書いて、コードでひらがなでぼたん
と名前を変更しました。
しかし、実際に表示されているのは、コードで書いた名前です。
つまり、Storyboardで書いた名前をコードで上書きしたということになります。
ここで伝えたいことは、2つあります。
- オブジェクトをコードで使いたいなら、紐付けなければならないということ。
- Storyboard、コード両方で編集すると、コードの方が表示されるということ。
これはアプリ開発において、基本的なことなので覚えておいてください。
Main.storyboardに画面を追加する
では、次は、Main.storyboardに画面を追加した時の関係性について解説します。
コード画面が邪魔なので、一旦閉じましょう。
①プラスボタンをクリック
②ViewControllerをボードの横にドラッグ&ドロップ
この状態だと、このボードのレイアウトをプログラムで変えることはできません。
なぜなら、プログラムファイルが紐づいていないからです。
1つの画面に対して、1つのプログラムファイルなので、この画面のプログラムファイルを作成しましょう。
command + nで新しいファイルを作成します。
①「Cocoa Touch Class」を選択
②「Next」をクリック
①「Subclass of:」をUIViewControllerに変更
②「Class」にNextViewController
と入力
③「Next」をクリック
そのまま「Create」をクリック
これで、NextViewController.swift
というプログラムファイルの作成が完了しました。
Main.storyboard
を選択してください。
①2つ目の画面のバーをクリック
② (Show the Identity inspector)を選択
③「Class」でNextViewController
を選択
これで2つ目の画面と、プログラムファイルが紐づきました。
①2つ目の画面のバーをクリック
②command + option + control + enterで2分割表示にしましょう。
このように、2分割で表示されるはずです。
同じ手順を踏んでも、まれに以下のように、分割できない場合があります。
このような場合、Xcodeを再起動することによって修正できます。
①右上のバツをクリック
②「Stop Tasks」をクリック
これでXcodeを終了することができるので、もう一度Xcodeを開き直しましょう。そうするとコードが表示されるはずです。
これで、Main.storyboard
の2つ目の画面と、NextViewController.swift
を紐づけることができました。
2つ目の画面のレイアウトをコードで編集したいときは、NextViewController.swift
にコードを書いていきます。
このように、画面を追加したら、必ずプログラムファイルも追加しましょう。
もし、3つ目の画面を追加するなら、3つ目のプログラムファイルも追加しましょう。ということです。
まとめ
- 1画面と、ViewController.swiftは1つのセット
次の講座では、BMIを計算するアプリを作ってみたいと思います。
サトリク
このブログ(satorikublog)の筆者サトリクが、初心者の方に教えるサービスをはじめました。
気軽にご相談ください!
次の講座
【Swift/Xcode超入門】BMIを計算するアプリを作ってみよう!
本で勉強したい方はこちら
【2021年版】Swift5/Xcode/OSアプリ開発のオススメ参考書・本・書籍まとめ。初心者から上級者まで!
ゼロから学ぶiPhoneアプリ開発入門