配列とビュー間での画像の受け渡しに問題があり、助けが必要です。だから背景は私が持っているということです:
•RootViewController(テーブルビューを処理します)
•テーブルから選択した要素の詳細を処理するCommunicationViewController
•CommunicationViewControllerからクリックされた画像を表示し、ユーザーがカメラロールから別の画像を選択できるようにするSelectSlideViewController
だから問題:
•CommunicationViewConrollerで、ユーザーがボタンをクリックすると、次のコードが表示されます。
- (IBAction) selectSlide:(id) sender
{
if(self.selectSlideView == nil)
{
SelectSlideViewController *viewController = [[SelectSlideViewController alloc]
initWithNibName:@"SelectSlideViewController" bundle:[NSBundle mainBundle]];
self.selectSlideView = viewController;
[viewController release];
}
[self.navigationController pushViewController:self.selectSlideView animated:YES];
self.selectSlideView.cmn = cmn;
self.selectSlideView.title = cmn.name;
self.selectSlideView.imageView.image = self.myImage5;
}
そして、上記のコードは機能します。たとえば、ボタン5をクリックすると、image5が「SelectSlideViewController」のビューに設定されます。
ただし、同じ「selectSlide」アクションを使用する複数のボタンが必要です。そのためには、どのボタンが押されたかを把握し、画像の配列から「SelectSlideViewController」に正しい画像を割り当てる必要があります(または不格好な一連のif-elseステートメント)。
•したがって、私の改訂されたコードは次のとおりですが、配列では機能しません–何か考えはありますか?:
- (IBAction) selectSlide:(id) sender
{
if(self.selectSlideView == nil)
{
SelectSlideViewController *viewController = [[SelectSlideViewController alloc]
initWithNibName:@"SelectSlideViewController" bundle:[NSBundle mainBundle]];
self.selectSlideView = viewController;
[viewController release];
}
NSUInteger tmpInt = -1;
tmpInt = [buttonArray indexOfObject:sender];
[self.navigationController pushViewController:self.selectSlideView animated:YES];
self.selectSlideView.cmn = cmn;
self.selectSlideView.title = cmn.name;
NSLog(@"The int was %d",tmpInt);
NSLog(@"This is the image array size %d ",[imageArray count]);
If(tmpInt >-1 && tmpInt <9)
{
self.selectSlideView.imageView.image = [imageArray objectAtIndex:tmpInt];
}
/** this code works, but is a bit clunky:
if(tmpInt == 0)
self.selectSlideView.imageView.image = self.myImage1;
else if (tmpInt == 1)
self.selectSlideView.imageView.image = self.myImage2;
else if (tmpInt == 2)
self.selectSlideView.imageView.image = self.myImage3;
else if (tmpInt == 3)
self.selectSlideView.imageView.image = self.myImage4;
else if (tmpInt == 4)
self.selectSlideView.imageView.image = self.myImage5;
else if (tmpInt == 5)
self.selectSlideView.imageView.image = self.myImage6;
else if (tmpInt == 6)
self.selectSlideView.imageView.image = self.myImage7;
else if (tmpInt == 7)
self.selectSlideView.imageView.image = self.myImage8;
else if (tmpInt == 8)
self.selectSlideView.imageView.image = self.myImage9;
**/
}
imageArrayのサイズが9であり、配列から正しいインデックスを選択していることを確認しましたが、配列からアクセスした場合、SelectSlideViewControllerは画像を表示しません。不格好なif-elseステートメントを使用してアクセスすると表示されます。