0

私のアプリで問題が発生しました。単純に聞こえますが、解決できませんでした。さて、こんな状況です。

私は2つのviewControllerを持っています。VC1 と VC2。VC1 には、ボタンと imageView があります。ボタンが押されると、imageView がアニメーションで左から右に移動し、vc2 が pushtoViewController によって開かれます。VC2には戻るボタンであるボタンもあり、それを押すと最初のVC1が開き、画像が右から左に移動するはずです。

PopViewController を使用して VC1 を開くことはできますが、VC2 からイメージビューを制御して右から左にアニメーション化することはできません。VC2 から VC1 の imageView にアクセスするにはどうすればよいですか?

4

2 に答える 2

4

これは、VC1 で VC2 を呼び出す方法です。

  VC2 *vc2 = [[VC2 alloc] initWithNibName:@"VC2" bundle:nil ];
  vc2.delegate = self; // here you set the delegate for the coming back call
  [self presentModalViewController: vc2 animated: YES]; // or however you present your VC2

そして、これが vc2 から vc1 に戻る方法です。次のように呼び出します。

[self.delegate vc2HasFinished];

これを機能させるには、次のようなプロトコルを作成する必要があります。VC2Protocol.h

 @protocol VC2Protocol <NSObject>
    -(void)vc2HasFinished;
    @end

次に、これ VC2Protocol.hを VC1 と VC2 に含めます。VC1 では、このメソッドを次のように定義する必要があります。

-(void) weitereRufNrVCDidFinish{
    [self dismissModalViewControllerAnimated:YES completion: nil];

}

これはAppleが推奨する最もクリーンで推奨される方法です-面倒に見えます-同意します-しかし、機能し、慣れます:-)

于 2012-09-02T16:49:58.913 に答える