UINavigationController を使用している場合は、子ビュー コントローラーで次のような操作を行うことで、親ビュー コントローラーを取得できます。
ParentViewcontroller * parentView = (ParentViewcontroller *)[self.navigationController.viewControllers lastObject];
UINavigationController を使用していない場合は、通知を使用できます (やり過ぎかもしれません)。または、親から子へのキー値観察 (つまり、子ビュー コントローラーの変更に基づいて何かの表示または値を変更する)。
または、ここで行う最も簡単な方法は、親を子のデリゲート ターゲットに設定することです。
1 )
ChildViewcontroller.h ファイルで、次のようなプロトコルを作成します。
@protocol ChildViewDelegate
- (void) doSomethingWith: (NSString *) thisString;
@end
2)
ChildViewcontroller にデリゲート プロパティを作成します (これを親ビューに設定します)。
3)
ParentViewcontroller.h ファイルで、@interface宣言<ChildViewDelegate>
の後に " " を追加しますUIViewController
...つまり
@interface ParentViewController : UIViewController <ChildViewDelegate>
4)
doSomethingWith:
" " メソッドを実装します。
5)
また、親から子ビューコントローラーをインスタンス化/作成するときは、デリゲートを親に設定することを忘れないでください。
6)
最後に、子から親にメッセージを送信する場合は、次のように簡単にできます。
[delegate doSomewthingWith: thisString];