VC2
のインスタンスからのインスタンスを提示し、それ自体VC1
を閉じたときに実行される完了ブロックを渡したいと思いますVC2
。渡された完了ブロックは、VC1
インスタンスのメソッド呼び出しになります。
これを行う正しい方法は何でしょうか?
通常、VC1からVC2を提示する場合、次のようになります。
VC2 *vc2 = [[VC2 alloc] init];
[self presentViewController:vc2 animated:YES completion: nil];
とVC2で
[self dismissViewControllerAnimated:YES completion: nil];
(ps通常、私はVC2でこのようにVC2を却下します-つまり、プロトコルで宣言されたVC1メソッドを呼び出します
[self.delegate dismissVC2]; // basically meaning VC1 to dismiss VC2
...しかし、VC2もそれ自体を却下できると思いますが、これが常に問題ないかどうかはわかりません。
Appleのドキュメントに載っている間、彼らはまだ委任スキームを推奨していますが、自己却下も機能します。
これについてもコメントしていただけますか?)
私はVC2でこのようなsthをしたいと思います:
[self dismissViewControllerAnimated:YES completion: passedBlockFromVC1];
そして、VC2を提示するときpassedBlockFromVC1
は、VC1メソッドを含みながら、これを何らかの方法でVC2に渡します。
これを行う正しい方法は何でしょうか?
要約すると、VC1からVC2を提示するソリューションを探しています。VC2が却下されると、完了時にVC1メソッドが呼び出されます。プロトコルを定義したり、デリゲートを使用したりする必要はありません(これは、ある程度面倒です。ケース-しかし非常に信頼できる)
それは可能であり、推奨されていますか?
どうもありがとう!