FMDBで簡単写真アルバムを作ろう Part.8 ~【iPhone】TableViewの画面遷移、異なるView間での値の受け渡し~
前回:FMDBで簡単写真アルバムを作ろう Part.7 ~【iPhone】SQLiteのデータを取り出してTableViewに表示~
簡単写真アルバムのソースコードはGitHubからどうぞ
ー>https://github.com/ics-hiro/SelfPhotoLibrary
TableViewで画面遷移 didSelectRowAtIndexPath
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // セルの選択を解除する [tableView deselectRowAtIndexPath:indexPath animated:YES]; for (int i = 0; i < titleArry.count; i++) { if (indexPath.row == i) { PhotoViewController *bvc = [[PhotoViewController alloc] initWithNibName:@"PhotoViewController" bundle:nil]; bvc.row_num = i; // どの行を選んだのか、次のViewControllerに値を受け渡ししている。 [self.navigationController pushViewController:bvc animated:YES]; } } }
TableViewのセルがタップされたときに呼ばれるのがdidSelectRowAtIndexPath
セルが選択されたままの状態になってしまうことを防ぐため、「[tableView deselectRowAtIndexPath:indexPath animated:YES];」を実装して選択を解除する。
TableViewの行数はタイトルの数と一致するので、for構文を使いtitleArryの要素数だけforループで回す。
その際、if(indexPath.row == i)をネストし、bvc.row_num = i;を書くことで、
タップされた行番号と一致する整数をPhotoViewControllerのrow_numに受け渡しています。
このrow_numの値に応じて、PhotoViewControllerではタイトルと写真の表示を判別しています。
どうしてこのようにrow_numに値を代入して、PhotoViewControllerに値を受け渡せるのかというと、
アクセサを通しているからです。
アクセサメソッドを用いて、異なるView間での値の受け渡し
アクセサメソッドについては、「Objective-C プログラミング言語」の57ページに書かれているので、目を通してください。
今から話すのは、「@property」というやつについてです。
PhotoViewController.hを見てみると、
#import <UIKit/UIKit.h> @interface PhotoViewController : UIViewController @property (nonatomic,assign) NSInteger row_num; //<-これのことです。 @end
そして、PhotoViewController.mで@synthesizeしています。
@implementation PhotoViewController { @private NSMutableArray *titleArry; NSMutableArray *contentsArry; } @synthesize row_num; //<-これのことです
@propertyと@synthesizeを使うことで、ゲッターとセッターを自動的に生成しています。
画面遷移のときに、bvc.row_num = i; と書いていたのは、セッターです。
これはドット演算子によるプロパティへのアクセスです。
[bvc setRow_num:i];という表現を簡略化した書き方がbvc.row_num = i;です。
ちなみに、
ドット演算子は、id型の変数には適用できない点に注意してくださいね。
簡単写真アルバムアプリ記事一覧
FMDBで簡単写真アルバムを作ろう Part.1 ~メモが書ける写真アルバムをつくる~
FMDBで簡単写真アルバムを作ろう Part.2 ~Xcode4.3,SingleViewApplication,FMDB準備~
FMDBで簡単写真アルバムを作ろう Part.3 ~必要なファイルを追加して整理しよう~
FMDBで簡単写真アルバムを作ろう Part.4 ~NavigationBarと画面遷移~
FMDBで簡単写真アルバムを作ろう Part.5 ~【iPhone】SQLiteのデータを出し入れするためのクラスをつくる~
FMDBで簡単写真アルバムを作ろう Part.6 ~【iPhone】UITextField,UIActionSheet,UIImagePickerControllerとメモ、写真の保存~
FMDBで簡単写真アルバムを作ろう Part.7 ~【iPhone】SQLiteのデータを取り出してTableViewに表示~
FMDBで簡単写真アルバムを作ろう Part.8 ~【iPhone】TableViewの画面遷移、異なるView間での値の受け渡し~
FMDBで簡単写真アルバムを作ろう Part.9 ~【iPhone】TableViewのセルを削除、commitEditingStyle ~
FMDBで簡単写真アルバムを作ろう 最終章 ~簡単写真アルバムの完成~
======================
当ブログ管理人のツイッターはこちら
◎フォローしてくださると泣いて喜びます!ツイッター上で当ブログの質問などにもできるだけお答えしますし、役に立つiPhoneアプリ開発情報もつぶやきます。個人的なご依頼(たとえば、プログラミングの家庭教師、Skypeレッスンをしてくれないか、iPhoneアプリ開発の勉強会ってやってるの、とかですね)でもかまいません。
■スカイプレッスンについて
開発をしているとその都度ぶつかる問題があると思いますが、検索で調べてもなかなかわからない、あるいは調べても非常に時間がかかる場合があると思います。開発者のみなさんもお忙しいと思いますので、私のレッスンを受けながら開発を進めていただけると、大幅にお時間を短縮できます。加えて、iPhoneアプリ開発の基礎、応用が身につき、今後の開発もスムーズに進められます。
お問い合わせはツイッター、またはhiyoshimarukoアットマークgmail.comまでお願いします。(アットマークを@にしてください)お待ちしております!