これが私が持っているものです:
画像の配列を持つルート ビュー コントローラーがあります。フルスクリーン画像を表示するためのフルスクリーン UIImageView を持つ detailViewController があります。また、detailViewController を表すセグエも定義しています。このセグエは、ユーザーが rootViewController で次のように画像を選択すると、プログラムによって呼び出されます。
- (void)carousel:(iCarousel *)carousel didSelectItemAtIndex:(NSInteger)index
{
[self performSegueWithIdentifier:@"fullScreenSegue" sender:self];
}
問題は、detailViewController には、表示する UIImageView の画像として設定する画像プロパティがあり、表示する画像を渡す方法が必要なことです。どうすればいいですか?Apple ドキュメントによると、呼び出し元のコントローラーに prepareForSegue メソッドを実装する必要がありますが、その時点で、上記のインデックスにアクセスできなくなります。画像はルート ビュー コントローラーの配列にあり、detailViewController に渡す画像を知るためにそのインデックスが必要です。また、呼び出し元のコントローラーをデリゲートとして設定し、次に init() メソッドで「setImage」メソッドを呼び出すプロトコルを持つように detailViewController を設定しましたが、それは機能していないようで、とにかくクレイジーな実装のようです.. .
@property int selectedIndex のように rootViewController でプロパティを宣言し、そのプロパティを上記のメソッドで設定し、次に prepareForSegue メソッドで次のようなことを行うことを考えました。
detailViewController.imageForDisplay = [images objectAtIndex:selectedIndex];
それはおそらくうまくいくでしょうが、そのアプローチは私を誤解させます...
助けてくれてありがとう!