iPhoneアプリ作成中です。
クラス①にCollectionViewで画像を並べ、タップした画像ごとに別々のplistを呼び出させます。
そして、クラス②の中身であるtableViewで、セルのテキストとしてplistの中身を表示させようと
しています。条件と手順は以下の通りです。
<条件>
・UIViewControllerのサブクラスとして、クラス①(CollectionViewController)と
クラス②(TableViewController)を用意する
・画像(名前:photo01〜10)と、plist(名前:List01〜10)を用意する
・plistの中身は以下の通り
Rootのタイプ:Array
Itemのタイプ:Dictionary
Itemの中身のキー:文章
Itemの中身のValue:(各種文章)
・画像photo01〜10は、クラス①にコレクションビューで並べてある
・画像をタップするとクラス②に遷移するよう、Presenting Seguesで設定しておく
<手順>
・クラス①にコレクションビューで並べた画像(例:photo01)をタップする
・クラス②に遷移する(これ以降はクラス②内での処理)
・タップした画像のインデックス番号を取得し、plist(例:List01)を呼び出す
・最終的に、plistの中身である(各種文章)をTableViewのセルのテキストとして表示する
としたいと考えています。
そこで、
lang
1-(void)viewDidLoad{ 2[super viewDidLoad]; 3 4// クラス①(Aisatuと名付けてあります)のインスタンスを取得する 5NSUInteger idx = [[self.navigationController viewControllers] indexOfObject: self] - 1; 6Aisatu *masterVC = [[self.navigationController viewControllers] objectAtIndex: idx]; 7 8// タップした画像のインデックスを算出する※detailItemの型はNSString型です。 9NSUInteger nextImageIdx = [masterVC.photos[0] indexOfObject: self.detailItem] - 1; 10 11NSString *st=[[NSString alloc] initWithFormat:@"List%lu",(unsigned long)nextImageIdx]; 12 13NSString* dataFile = [[NSBundle mainBundle]pathForResource:st 14 ofType:@"plist"]; 15arrayList = [NSArray arrayWithContentsOfFile:dataFile]; 16} 17
と書いてみたのですが、うまくいきません。nextImageidxの値を取得するときにトラブルがあるようです。
どんな画像をタップしてもnextImageidxのログを取ると「1」しか出てきません。本来はnextImageIdxには
01〜10のうち、タップした画像の名前の末尾の数字が入る予定です。
この原因は同じ行にある「self.detailItem」にあるようです。これのログを取ると、
なぜかNULLになります。しかし、その原因がわかりません。
どなたか原因がわかる方がいらっしゃったらご教示いただけないでしょうか。
以上、何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/02/03 22:51
2015/02/03 22:52
2015/02/03 23:04
2015/02/03 23:05
2015/02/03 23:52
2015/02/04 00:26
2015/02/04 00:29
2015/02/04 00:38
2015/02/04 00:41
2015/02/04 02:37