Storyboardで簡単画面遷移 ~レッスン補足~
絶対に挫折しないiPhoneアプリ開発入門Part.24 ~Viewを横向きに固定してみよう~の続きとして書きます。Viewを新しく追加したときに横向きかつ画面遷移を含めて、どうすればいいのかというご質問の回答になっております。
まずはPart.24のところまでつくってみます。
今回はこんな状態。
さて、ここにもうひとつViewを追加します。そのViewは横向きですね。
順を追って説明致します。
Storyboardを開き、View Controllerを追加します。
Storyboardで新しく追加したView Controllerを横向きにしましょう。これは前回と同じですね。
これでStoryboard上は横向きになりましたが、これだけでは足りません。
新しく追加したViewに対してちゃんと横向きになっていてくださいねと、コードで書く必要があります。
ということは、このViewを制御するためにファイルを追加するということです。
左上の「File」からもファイルをつくることができますが、毎回はめんどくさいので、追加したい場所のすぐ上にあるファイルを右クリックして、ファイルをつくりましょう。
「Objective-C class」を選択して、Next
UIViewControllerを選択して、HomeViewControllerと名付けました。チェック欄はふたつともチェックしないでください。
そして、「Create」ですね。
新しく追加したViewについては、HomeViewController.hとHomeViewController.mで制御したいわけです。
なので、もう一度Storyboardに戻り、ちゃんとこのファイルを使ってコントロールするんですよというのを決めてやる必要がありますね。
もともとあったViewControllerを選択すると、新しく追加したViewがHomeViewControllerになっていることを確認できる。
さて、新しく追加した「HomeViewController」を最初に起動させたいわけです。そして今回のプロジェクトではStoryboardを使っているので、この矢印を移動させなくちゃいけません。この矢印が最初の基点となるViewを示しています。移動させましょう。
HomeViewControllerは横向きで固定させたいので、
HomeViewController.mの回転に関するコードの部分を変えます。
shouldAutorotateToInterfaceOrientationだけを変えてますよ。
HomeViewController.m
#import "HomeViewController.h" @interface HomeViewController () @end @implementation HomeViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); //←この部分を変更した } @end
これで横固定はできました。
あとは、実際にラベルを貼って文字を表示したり、ボタンを設置して画面遷移したりしてみましょう。
今回は、「画面遷移」と書いたボタンを押したら、次のViewにいくようにしたいので、このボタンを右クリックしながらもうひとつのViewにドラッグするか、controlキーを押しつつ左クリックしながらもうひとつのViewにドラッグするか、してくださいね。
「Modal」を選択してください。「Push」はNavigation Controllerのときに使います。
逆も同様にしていただけると画面遷移できます。
これが本当に一番簡単な画面遷移です。
ただ、モーダル画面遷移なので、これを多用すると、どんどん上に重なっていくという画面遷移になっていきます。
コードでModalを書きdismissすれば、モーダルで表示したViewをのけることができるのですが、今回はStoryboardのみを利用した画面遷移とのことでしたので、ここまで書きました。
疑問点がありましたらまた質問してくださいね^^
======================
当ブログ管理人のツイッターはこちら
◎フォローしてくださると泣いて喜びます!ツイッター上で当ブログの質問などにもできるだけお答えしますし、役に立つiPhoneアプリ開発情報もつぶやきます。個人的なご依頼(たとえば、プログラミングの家庭教師、Skypeレッスンをしてくれないか、iPhoneアプリ開発の勉強会ってやってるの、とかですね)でもかまいません。
■スカイプレッスンについて
開発をしているとその都度ぶつかる問題があると思いますが、検索で調べてもなかなかわからない、あるいは調べても非常に時間がかかる場合があると思います。開発者のみなさんもお忙しいと思いますので、私のレッスンを受けながら開発を進めていただけると、大幅にお時間を短縮できます。加えて、iPhoneアプリ開発の基礎、応用が身につき、今後の開発もスムーズに進められます。
お問い合わせはツイッター、またはhiyoshimarukoアットマークgmail.comまでお願いします。(アットマークを@にしてください)お待ちしております!