ストーリーボードに 2 つのビュー コントローラーがあります。VC1 には 3 つのボタンがあり、VC2 には画像ビューがあります。
VC1 でボタン A をクリックすると、VC2 に A の画像が表示されます。VC1 でボタン B をクリックすると、VC2 に B の画像が表示されます。
VC2 は、VC1 でクリックされたボタンをどのように知ることができますか?
あなたはそれを行うことができますセグエ:
ボタンAからVC2へ、ボタンBからVC2へ、ボタンAからVC2lへのセグエ接続を与える
セグエ識別子SegueA、SegueB、SegueCをそれぞれ入力します。
VC1で次のメソッドを記述します。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
ImageViewController *vc2=(ImageViewController*)[ segue destinationViewController];
if([[segue identifier] isEqualToString:@"SegueA"]){
vc2.imageView.image =[UIImage imageNamed:@"a.png"];
}else
if([[segue identifier] isEqualToString:@"SegueB"]){
vc2.imageView.image =[UIImage imageNamed:@"b.png"];
}else
if([[segue identifier] isEqualToString:@"SegueC"]){
vc2.imageView.image =[UIImage imageNamed:@"c.png"];
}
}
VC2 でデリゲートを設定して、元の VC に情報を送り返します。「objective-c delegate」を Google で検索し、model-view-controller パラダイムを読んでください。
これは簡単です!!!
1) VC2 で NSString プロパティを .h ファイルに作成し、それを .m ファイル "NSStringObjofVC2" に合成します 2) VC2 を VC1 .h ファイルにインポートします #import "VC2" を作成し、このようなオブジェクトを作成します
VC2 *vc2Obj;
3) viewdidload メソッドで
vc2Obj = [[VC2 割り当て] 初期化];
4)各ボタンをクリックしてこれを追加します
vc2Obj.NSStringObjofVC2 = @"differentImageNameforAll3Buttons.png";
VC2 でイメージを最後に使用する
UIImage の NSStringObjofVC2 をファイル名として使用するだけです