0

私はAndroidの経験がありますが、iOSでは本当に新しいです。Androidでは、startActivityForResult()を使用して画面Aから画面Bに移動できます。次に、Bを閉じると、システムはコールバックメソッドで画面Aに通知して、何かを実行します(たとえば、戻り値の取得、データの更新など)。 ..)

ここで聞きたいのは、画面Bを閉じたときに呼び出されるコールバック関数を登録する方法はありますか?画面Bから画面Aにデータを返す方法は?

パブリックプロパティを宣言し、画面Bから値を設定できることはわかっています。しかし、この方法を使用すると、ソースコードが複雑になり、セキュリティが低下する可能性があると思います。(つまり、評価のために他の画面にプロパティを開きたくない)。

ありがとう。

4

2 に答える 2

0

これにはデリゲートパターンを使用できます。

(UITextField、UITableViewなどを見てください...これらはすべてこのパターンを使用しています)。

2番目のビューに次のようなデリゲートプロパティを設定します...

SecondViewDelegate

そしてプロトコルであなたはそれに次のような方法を与えます...

- (void)secondViewDidSelectValue:(NSString*)selectedValue;

次に、最初のビューで、それを2番目のビューのデリゲートにします。

このパターンについては多くのリソースがあります。

于 2012-12-18T08:28:37.780 に答える
0

はい、それを行うためのより良い方法があります。これは委任と呼ばれます。@protocolView Controllerで、とを作成することを却下します@property (nonatomic, weak) id <ProtocolName> delegate;。この値は、前のViewControllerから設定しますsecondVC.delegate = self。Javaインターフェイスのようになります。次に、2番目のView Controllerが消えたら、デリゲートメソッドを呼び出します(例:)viewWillDisappear:

これが理にかなっていることを願っています!

于 2012-12-18T08:30:25.577 に答える