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」ですね。


hファイルとmファイルがつくれたことを確認してください。


新しく追加した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までお願いします。(アットマークを@にしてください)お待ちしております!