Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 205 - マルチビューアプリ始動!

Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide

2015年5月12日:編集

        • -

iPadのレイアウト調整の説明は、iPhoneランドスケープ変化と似たようなものなので割愛します。

今日から新しいテーマでマルチビューを勉強していきます。

マルチビュー・アプリケーションというのは、複数シーン(Scene)を切り替えられるアプリのことです。

シーン(Scene)って何でしょう?

実はビュー・コントローラー(View Controller)コンテント・ビュー(Content View)の組み合わせです。

このシーンの切りかえをコントロールするView Controllerのことをルート・コントローラー(Root Controller)と呼びます。

実際のプロジェクトを作りながら説明していきます。

Xcode6の新規プロジェクトを作ります。

File -> New -> Project...

マルチビュー・アプリは、「Single View Application」から作ります。ビューの切り替えは、見た目シングルビューと同じです。

「Next」ボタンを押して、「Product Name」は「My Fourth Project」とします。←自分の好きな名前を付けて下さい。

Languageは当然Swiftにして、DeviceはUniversalです。Use Core Dataはいらないので外します。Nextボタンを押して保存したい場所でCreateします。

アプリの概要
  1. 黄色いVewを保持するViewControllerとオレンジ色のViewを保持するViewControllerを切り替えるアプリケーションで、画面下部のツールバーにあるSwitch Viewsボタンを押すことで2つのコントローラーが切り替わります。
  2. それぞれのViewにあるボタンを押すと、どちらのViewControllerが表示されているのかポップアップウインドウで知らせます。

このアプリは、3つのViewControllerを持ちます。3つとも同じ名前だと混乱するので、それぞれ別の名前を付けていきます。

Main.storyboardを選択してDocument Outlineを見ると。既にデフォルトでView Controllerという名前のファイルがあります。

ViewControllerを切り替えるViewControllerをSwitchingViewControllerに変更していきます。

Xcode6にはリファクタリング(Refactoring)という便利な機能があり、ファイルの名前を変えるだけでコード内の名前も自動的に調整してくれます。

しかし、今のところこのリファクタリング機能は実装されていません。ということで今のところは以下のリンクで説明してある2通りの方法て退所します。

yataiblue.hatenablog.com

ここでは、消去して作成し直す方法を説明します。

プロジェクト・ナビゲーターのViewController.swiftを選んで右クリック、もしくはContorol + クリックしてメニューからDeleteを選択します。
f:id:yataiblue:20150123214026j:plain

次にそのまま右クリック(or Control + クリック)してメニューからNew File...を選び、ダイアログのiOS SourceからCocoa Touch Classを選択します。
f:id:yataiblue:20150123214027j:plain

Class名にSwitchingViewControllerと入れて、ALso create XIB fileのチェックマークを外します*1LanguageSwiftにしてNextボタン、Createボタンを選択します。
f:id:yataiblue:20150123214028j:plain

Main.storyboardを選んでDocument OutlineからViewControllerを選びます。Identity Inspector(アイデンティティ・インスペクタ)*2のCustom ClassからSwitchingViewControllerを選択します。
f:id:yataiblue:20150123214029j:plain

Document Outlineを見ると、View ControllerからSwitching View Controllerに変わっています。
f:id:yataiblue:20150123214030j:plain

これでViewControllerの切りかえができました。

リファクタリングが動けば、こんなことしなくていいんです。

今日はここまで。

*1:当然今の私には何のことやらさっぱり分かりません!これが分かる頃に私はベテラン?

*2:Xcode6ショートカットの説明リンク