読者です 読者をやめる 読者になる 読者になる

うさがにっき

読書感想文とプログラムのこと書いてきます

Tabbed Applicationで複数画面が切り替わるアプリを作る

概要

Tabbed Applicationを使って複数画面が切り替わるアプリを作る

詳細

Tabbed Application

タブバーで複数画面が切り替わるアプリのこと
下にあるタブバーをタップすると、画面が切り替わって別のビュー画面が現れる
複数の画面をどのようにも行き来できるので、画面どうしで直接データのやり取りするのではなく、AppDelegateを使ってデータを連携する

3つのタブバー間で数字をやりとりするアプリの作成

Tabbed Applicationテンプレート選択してプロジェクトを作る
f:id:tiro105:20150322193318p:plain
これで二つの画面が切り替わるアプリができる
f:id:tiro105:20150322193304p:plain

FirstViewControllerの下にあるTab Barを選択してアトリビュートインスペクタのTab Bar Item>System Itemでタブアイコンを設定する
f:id:tiro105:20150322194640p:plain
同じようにSecondViewControllerの下にあるTab Barを選択してアイコンを変更する
f:id:tiro105:20150322194756p:plain

3つ目の画面を作成する
f:id:tiro105:20150322194907p:plain
MainStoryBoardにViewControllerを作成し、作成したクラスと紐づける
f:id:tiro105:20150322195234p:plain
Tab bar controllerからControl + ドラッグで三つ目の画面に持って行きview controllersを選ぶ
f:id:tiro105:20150322195340p:plain
他の二つの画面と同じようにアイコンを変えて、全体像がこんな感じ
f:id:tiro105:20150322195407p:plain

AppDelegateを通じて全画面でデータのやりとりを行う
AppDelegateにカウント用の変数を用意する

    var myCount = 0

1画面が表示されたらカウントアップして値をコンソールに表示する

    override func viewWillAppear(animated: Bool) {
        var myAp = UIApplication.sharedApplication().delegate as AppDelegate
        myAp.myCount++
        println("1画面目 count=\(myAp.myCount)")
    }

同じように2画面目も

    override func viewWillAppear(animated: Bool) {
        var myAp = UIApplication.sharedApplication().delegate as AppDelegate
        myAp.myCount++
        println("2画面目 count=\(myAp.myCount)")
    }

3画面目

    override func viewWillAppear(animated: Bool) {
        var myAp = UIApplication.sharedApplication().delegate as AppDelegate
        myAp.myCount++
        println("3画面目 count=\(myAp.myCount)")
    }

こんな感じ
f:id:tiro105:20150322200115p:plain

参考

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】