絶対に挫折しないiPhoneアプリ開発入門Part.11 ~Table View Controller その6、画面遷移、didSelectRowAtIndexPath、タブバーを消す、アニメーション~

前回:絶対に挫折しないiPhoneアプリ開発入門Part.10 ~Table View Controller その5、cellForRowAtIndexPath~


では、次に実装するのは、

画面遷移

です。


こういう画面で、「日吉商店街」を選択すると

こうやって遷移する




こうやって、セルを選択したときの反応を実装するのが

didSelectRowAtIndexPath

です!



まず、「日吉商店街」を選択した後に表示されるファイルをつくります。


UIViewController subclass から UITableViewController を選んでくださいね。

これを、ぼくは

ShoutengaiViewController

と名付けました。


1.SpotViewControllerを編集


SpotViewController.m

#import "SpotViewController.h"
#import "ShoutengaiViewController.h"  //←これを追加

ShoutengaiViewControllerのヘッダーファイルをインポートします。


これで、ShoutengaiViewController が使える準備ができたって感じです。


SpotViewController.m

#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 0) {
        ShoutengaiViewController *svc = [[ShoutengaiViewController alloc] initWithNibName:@"ShoutengaiViewController" bundle:nil];
        svc.hidesBottomBarWhenPushed = YES;
        [self.navigationController pushViewController:svc animated:YES];
        
    }
}

@end

プログラミングでは、「0」から数え始めます。

すなわち、一行目の「日吉商店街」は indexPath.row == 0 となりますね。

二行目だと indexPath.row == 1
三行目だと indexPath.row == 2


ですね。


ここの項目をどう解説しようかなと悩んで、、、うーん悩んでます。

このプログラムの意味を解説するのではなく、
どこに注意するべきかを書きたいと思います。


まず、

 if (indexPath.row == 0) {
ShoutengaiViewController *svc = [[ShoutengaiViewController alloc] initWithNibName:@"ShoutengaiViewController" bundle:nil];
svc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:svc animated:YES];

}


3つが一致していなければなりません。

注意すべきなのは、3つ目の「@””」の中身のShoutengaiViewControllerです

前の2つは自動入力されるので、上記のようにヘッダーファイルをインポートしていれば
問題ないのですが、この3つ目は手動で間違えないように入力してください。

たぶん、ファイル数が多くなると必ず間違えることがあると思いますので、

スペルチェック

をしてください。



 if (indexPath.row == 0) {
ShoutengaiViewController *svc = [[ShoutengaiViewController alloc] initWithNibName:@"ShoutengaiViewController" bundle:nil];
svc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:svc animated:YES];

}


このsvcも一致していなければなりません。

このsvcSpotViewController の頭文字です。


これは自由でいいです。

svcの代わりにaiueoでも大丈夫です。



svc.hidesBottomBarWhenPushed = YES; というのは、

画面遷移した後にタブバーを消す

という意味です。

上の画像をみてもらえると、タブバーが消えていることが分かります。



[self.navigationController pushViewController:svc animated:YES];

これは、

画面遷移にアニメーションをつけるかどうか

という意味です。

「YES」にすると、画面遷移の時にシュッと横にスライドして画面遷移します。





あとは、前回と同じように、ShoutengaiViewControllerのhファイルとmファイルを編集して、日吉商店街の中身を作ってみましょう。


======================
当ブログ管理人のツイッターこちら
◎フォローしてくださると泣いて喜びます!ツイッター上で当ブログの質問などにもできるだけお答えしますし、役に立つiPhoneアプリ開発情報もつぶやきます。個人的なご依頼(たとえば、プログラミングの家庭教師、Skypeレッスンをしてくれないか、iPhoneアプリ開発の勉強会ってやってるの、とかですね)でもかまいません。
スカイプレッスンについて
開発をしているとその都度ぶつかる問題があると思いますが、検索で調べてもなかなかわからない、あるいは調べても非常に時間がかかる場合があると思います。開発者のみなさんもお忙しいと思いますので、私のレッスンを受けながら開発を進めていただけると、大幅にお時間を短縮できます。加えて、iPhoneアプリ開発の基礎、応用が身につき、今後の開発もスムーズに進められます

お問い合わせはツイッター、またはhiyoshimarukoアットマークgmail.comまでお願いします。(アットマークを@にしてください)お待ちしております!

【絶対に挫折しないiPhoneアプリ開発入門】
1.絶対に挫折しないiPhoneアプリ開発入門Part.1 ~Xcode4.2でひよしまるを作ろう~
2.絶対に挫折しないiPhoneアプリ開発入門Part.2 ~iOS Developer Programに参加しよう~
3.絶対に挫折しないiPhoneアプリ開発入門Part.3 ~Xcode4.2の起動、InterfaceBuilderの利点欠点、神本紹介~
4.絶対に挫折しないiPhoneアプリ開発入門Part.4 ~Single ViewControllerからスタート~
5.絶対に挫折しないiPhoneアプリ開発入門Part.5 ~画面遷移、Tab Bar Controller,Navigation Controller,Table View Controller~
6.絶対に挫折しないiPhoneアプリ開発入門Part.6 ~UITableViewController その1、Tabの名前変更~
7.絶対に挫折しないiPhoneアプリ開発入門Part.7~Table View Controller その2(ファイルの接続)、Objective C、コメントについて~
8.絶対に挫折しないiPhoneアプリ開発入門Part.8 ~Table View Controller その3、ナビゲーションバーにタイトルと色をつける~
9.絶対に挫折しないiPhoneアプリ開発入門Part.9 ~Table View Controller その4、numberOfSectionsInTableView、numberOfRowsInSection、Xcodeの背景を黒に~
10.絶対に挫折しないiPhoneアプリ開発入門Part.10 ~Table View Controller その5、cellForRowAtIndexPath~
11.絶対に挫折しないiPhoneアプリ開発入門Part.11 ~Table View Controller その6、画面遷移、didSelectRowAtIndexPath、タブバーを消す、アニメーション~
12.絶対に挫折しないiPhoneアプリ開発入門Part.12 ~Table View Controller その7、セクションを使いこなすその1、セルの矢印を表示~