PListを使用して、テーブルビューからプッシュされたViewControllerからプッシュされたViewControllerにデータを入力しようとしています。もっと簡単に:
TableViewController-> DetailViewController-> 2ndDetailViewController(<-これは私が入力しているものです)
私がこれを行おうとしている方法は、ユーザーがテーブルビューの行をクリックしたときに整数を値に設定することです。次に、その整数の値を使用してPListの正しい値を指し、対応する文字列を引き出します。2番目のViewControllerで、UIImageViewにPListからの画像を入力しようとしています。これが私のdidSelectRowAtIndexPathのコードです:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
DealsDetailViewController *dealsDetail = [[DealsDetailViewController alloc]initWithNibName:@"DealsDetailViewController" bundle:nil];
dealsDetail.dealsImageString = [[self.dealsArray objectAtIndex:indexPath.row] objectForKey:@"Image"];
dealsDetail.dealsLabelString = [[self.dealsArray objectAtIndex:indexPath.row] objectForKey:@"Description"];
dealsDetail.title = [[self.dealsArray objectAtIndex:indexPath.row] objectForKey:@"Name"];
if ([[dealsArray objectAtIndex:indexPath.row] isEqual:@"Deal #1"]) {
dealsDetail.dealsInt = 0;
[dealsDetail setTitle:[dealsArray objectAtIndex:indexPath.row]];
}
if ([[dealsArray objectAtIndex:indexPath.row] isEqual:@"Deal #2"]) {
dealsDetail.dealsInt = 1;
[dealsDetail setTitle:[dealsArray objectAtIndex:indexPath.row]];
}
if ([[dealsArray objectAtIndex:indexPath.row] isEqual:@"Deal #3"]) {
dealsDetail.dealsInt = 2;
[dealsDetail setTitle:[dealsArray objectAtIndex:indexPath.row]];
}
[self.navigationController pushViewController:dealsDetail animated:YES];
[dealsDetail release];
すべてが正しく入力されます。テーブルビューコントローラ(ボタンをクリック時)とDealsDetailViewControllerのviewDidLoadメソッドの両方でdealsDetail.dealsIntの値をNSLogしようとしました。どちらの場合も、どの行をクリックしても「0」の値を返します。構文のどこが間違っていますか?
編集--------ログアウトすると次のようになります。
NSLog(@"%@",[dealsArray objectAtIndex:indexPath.row]);
2011-11-28 17:40:59.092 Stores Tab Bar[7386:207] {
Barcode = "SampleBarCode3.png";
Description = "Here's the deal 3";
Image = "FritoTest.png";
Name = "Deal #3";
Thumbnail = "dollars.png";
}
正しくクリックされたオブジェクトのPListコンテンツをログアウトします。したがって、適切な情報を取得しています(これは、テーブルビューと詳細ビューに正しく入力されていたためだと思います...)