私は、オプションメニューに渡すボタンを持っているビューコントローラを持っています。以前に割り当てられたUIViewControllerにデータを渡します。
オプションが設定されている場合、以前に割り当てられたビューコントローラーに戻る必要があります。
オブジェクトの「alloc and init another」インスタンスなしでこれはどのように可能ですか?
私は、オプションメニューに渡すボタンを持っているビューコントローラを持っています。以前に割り当てられたUIViewControllerにデータを渡します。
オプションが設定されている場合、以前に割り当てられたビューコントローラーに戻る必要があります。
オブジェクトの「alloc and init another」インスタンスなしでこれはどのように可能ですか?
init
オプションのviewControllerを使用している場合は、親に参照を渡します。
I.E.
[[OptionViewController alloc] initWith...: parent:];
@property
かの方法を使用するか、または背面のデータを渡すために、親に呼び出すことsomesuch。
デリゲートプロトコルを使用すると、これを実現できます。最初のビューコントローラは2番目のビューコントローラのデリゲートになり、選択が完了したら最初のビューコントローラでこのデリゲートメソッドを呼び出すことができます。
Googleでは、代理人の実装を目的別に検索できます。それはかなりシンプルです。
@protocol <delegatename>
<declare delegate method>
@end
デリゲートを割り当てるための2番目のビューコントローラにメンバー変数を作成します。デリゲートを実装するクラスでメソッドを定義します。
共有シングルトンを使用できますか? http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html
それともnsuserdefaultsにパラメータを保存して、あなたの最初のViewController
または他のいくつかの一時ストアにバックでそれらを読んで なごappdelegate
ように私は前に上記のアプローチの3つすべてを使用しました。
親コントローラがアプリケーション内で複数のスタックに同時に存在することができる場合は、グローバル(単体やAppDelegateなど)をコードからリファクタリングする必要があります。 –
親がアクセス権を持ち、 'viewWillAppear:'コールバックで参照できる情報ホルダオブジェクトへの参照を渡すこともできます。 –
私は親を持つオブジェクトを割り当てます。その割り当てられたオブジェクトの親はそれを割り当てるオブジェクトになります(自己) – MrPink
正しい。したがって、:[[OptionViewController alloc] initWith ...:parent:self]; ' –