0

メインのviewController(mainViewControllerと呼びます)から、.xibファイルから作成された別のviewController(nextViewControllerと呼びます)を呼び出して表示するiPadアプリケーションがあります。この 2 番目の viewController により、ユーザーは次のように画像をキャプチャできます。

- (IBAction)imageCapture:(id)sender {

    _myImage = [_nextView captureImage];
    UIImageWriteToSavedPhotosAlbum(_myImage, nil, nil, nil);
    [self dismissViewControllerAnimated:YES completion:nil];

}

この画像がキャプチャされたら、この画像を呼び出し元のビューコントローラー (mainViewController) に戻す必要がありますが、正直なところ、これを行う方法がわかりません。nextViewController で mainViewController のプロパティ参照を作成しようとしました。これは、新しく取得した画像の参照を mainController の属性に渡すために実行しようとしていましたが、うまくいきません。

回答者全員に事前に感謝します。

4

2 に答える 2

1

これを効果的に行うには、提示されたView Controllerでプロパティを作成しないでください。mainViewControllerこれは再利用性の問題を引き起こすだけでなく、望ましくない密結合です。代わりに、上記のコメントにあるように、プロトコルを使用する必要があります。Objective-Cのプロトコル構文については、このドキュメントを参照してください。

NextViewController で、次のようなデリゲート メソッドを作成する必要があります。

-(void)nextViewController:(NextViewController *)nextViewController capturedImage:(UIImage *)image;

次に、メインのビュー コントローラー クラスで、このメソッドを実装し、画像に対して必要なことを行う必要があります。特に、メイン ビュー コントローラーからコントローラーを削除したい場合があります。次のビュー コントローラーを作成するときに、そのデリゲート プロパティを設定することを忘れないでください。

これで問題が解決することを願っています!

于 2013-08-27T16:01:00.687 に答える