(初心者向け)Swift3.0で初アプリ - ボタンを付けてみる

Swift3.0を使って簡単なiPhoneアプリを作ってみます
[初心者向け）Swift3.0で簡単なiPhoneアプリを作ってみる](http://qiita.com/egplnt/items/e8da2b9af1037e179a57)で作ったシンプルなSwift3.0アプリにボタンを付けてみます

#1. ボタンを付けます
- Xcodeでアプリを開きます
- 画面右下のフィルター欄に「button」と入力するとButton部品が表示されます

![スクリーンショット 2017-06-20 16.00.26.png](https://qiita-image-store.s3.amazonaws.com/0/125842/49ccb82f-7efa-a856-f9f5-64f7babfa6de.png)

- ストーリーボードへドラッグ＆ドロップしてボタンを作成します

![スクリーンショット 2017-06-20 16.02.26.png](https://qiita-image-store.s3.amazonaws.com/0/125842/ca2ff703-feef-04d4-8493-99a9333215af.png)

- ボタンの文字やサイズなどを調整します
![スクリーンショット 2017-06-20 16.04.14.png](https://qiita-image-store.s3.amazonaws.com/0/125842/64d56d09-3913-87d0-1e59-aa0242861d79.png)


#2. ボタンにアクションを設定します
- ボタンを押したときのアクションを設定していきます
- ボタンの設定をする前に、アクションの結果を表示する先として前項で作成したラベルの設定をします
- 画面右上隅の丸が二重に重なったようなアイコンをクリックすると、

![スクリーンショット 2017-06-20 16.05.41.png](https://qiita-image-store.s3.amazonaws.com/0/125842/1bc430e9-d79c-751c-d6ea-013b9a0e466a.png)

- ViewController.swiftのソースが表示されます

![スクリーンショット 2017-06-20 16.06.30.png](https://qiita-image-store.s3.amazonaws.com/0/125842/6237d58c-cf7a-1e94-9106-0ed53da57850.png)

- このままでは画面が見にくいので、画面右上隅のアイコンで画面左端のファイル表示ペインや右端の属性ペインを閉じます。同じアイコンを再度クリックすることでこれらのペインは再度表示されます

![スクリーンショット 2017-06-20 16.09.42.png](https://qiita-image-store.s3.amazonaws.com/0/125842/d55808fd-034a-57f3-c857-8fd5ceddcb53.png)

- 必要に応じ画面中央のストーリーボードの表示をドラッグ＆ドロップで調節します
- 前項で作成したラベル（この例では「こんにちは」と表示されている）を選択し、[Control]を押しながら画面右側のViewController.swiftの"class ViewController: UIViewController {"の行と"override func viewDidLoad() {"の行の間へドラッグする（ドラッグ中は青い線が表示されます）と、下記のようなポップアップが表示されます

![スクリーンショット 2017-06-20 16.11.04.png](https://qiita-image-store.s3.amazonaws.com/0/125842/1a4adb29-5583-337e-5e56-ad3427784f95.png)

- ラベルの名前として"label1"などとつけ、"Connect"を押すと、ViewController.swiftのソースコード内に下記の行が追加され、ViewController.swiftのプログラムからこのラベルが接続されます

```swift:ViewController.swiftへのラベルの接続
class ViewController: UIViewController {

    @IBOutlet weak var label1: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

```

- これにより、プログラム内からこのラベルへ表示する文字を制御できるようになりました
- このラベルに表示される文字列は「label1」の「text」という属性で設定されるので、たとえば下記のような設定をViewController.swiftの中で行うと、実行時にラベルに表示される文字列は「さようなら」となります

```swift:labelに表示する文字列の設定
label1.text = "さようなら"
```
- 同様に、先ほど追加したボタンについてもViewController.swiftに接続します
- ボタンを選択しつつ[Control]キーを押してドラッグ（青い線が表示されます）し、先ほど追加したラベル（label1）の下あたりへドロップします。下記のようなポップアップが表示されます

![スクリーンショット 2017-06-20 16.19.02.png](https://qiita-image-store.s3.amazonaws.com/0/125842/2eca6408-ad0f-594a-a339-fb9798cb3400.png)

- ここでは、このボタンを押した際のアクションを設定したいので、「Connection」プルダウンを開き、「Action」を選択します

![スクリーンショット 2017-06-20 16.19.48.png](https://qiita-image-store.s3.amazonaws.com/0/125842/dba80204-b4d7-fc09-df30-ed2513a4a4f3.png)

- Nameとして適当な名前（ここでは「button1」）を設定し、Typeを「UIButton」を選択してConnectを押します

![スクリーンショット 2017-06-20 16.24.07.png](https://qiita-image-store.s3.amazonaws.com/0/125842/ee4a43d1-dd39-a865-2de8-606a02c6669a.png)

- ViewController.swiftに下記の行が挿入され、ViewController.swiftからこのボタンが接続されてアクションを設定可能になったことがわかります

```swift:ViewController.swiftへのボタンの接続
class ViewController: UIViewController {

    @IBOutlet weak var label1: UILabel!
    
    @IBAction func button1(_ sender: UIButton) {
    }
    
    override func viewDidLoad() {
```

#３． ボタンを押したときのアクションを設定します
- ボタンを押したときのアクションは下記の行に書きます

```swift:ViewController.swiftでのボタンのアクションの設定
@IBAction func button1(_ sender: UIButton) {
    }
```

- 上記の中括弧｛｝の間を改行してスペースを空け、ラベルlabel1に表示する文字列(text)として下記を指定します


```swift:ボタン押下時のアクションを設定
    @IBAction func button1(_ sender: UIButton) {
        label1.text = "祝！初ボタン！"
    }
```
- 上記の例では、「ラベルlael1の属性textに『祝！初ボタン！』という文字列をセットする」という意味になります





#4. シミュレーターで確認します
- Xcode画面左上のビルドターゲットとして"iPhone7"などが選択されていることを確認します

![スクリーンショット 2017-06-21 10.11.36.png](https://qiita-image-store.s3.amazonaws.com/0/125842/e89c11b3-fcce-aafe-1673-995f7c1f28eb.png)

- [Command]+R（もしくは「▶」ボタン）を押してビルドを実行します。"Build Succeeded"のメッセージが表示されビルド（コンパイル）がうまくいったことがわかります。
- Xcodeとは別にシミュレーターのプログラムが起動しているので、画面を切り替えてシミュレーターを表示（前画面）にします。ラベルとボタンが表示されていることを確認します

![スクリーンショット 2017-06-21 10.13.17.png](https://qiita-image-store.s3.amazonaws.com/0/125842/4b1a631e-73cc-ecf3-f971-1bbf48139912.png)


- ボタンを押してみて、シミュレーターでの動作を確認します

![スクリーンショット 2017-06-21 10.14.18.png](https://qiita-image-store.s3.amazonaws.com/0/125842/a91a522f-ef29-a608-d569-cac481441f7d.png)





#5. iPhoneで実行してみます
- iPhoneをMacbookに接続します
- Xcodeの画面左上のビルドターゲットから接続した自分のiPhoneを選択します。表示されるプルダウンの選択肢の一番上のほうにあります
- [Command]+R（もしくは「▶」ボタン）を押してビルドを実行します。"Build Succeeded"のメッセージが表示されビルド（コンパイル）がうまくいったことがわかります。
- iPhoneにアプリがインストールされ、画面が表示されることを確認します。ボタンを押してみて動作を確認します

<img width="375" alt="IMG_3587.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/125842/45f48dc0-5b24-c44a-a2f8-9e1dd760c473.png">




# 次のステップへ
[次画面を追加してみます](http://qiita.com/egplnt/items/c6ed5fc80b06ece1a858)