これを行う最もクリーンな方法は、委任プロトコルを使用することだと思います。AController は BController のデリゲートになります。また、BController が閉じられる前に、プロトコルのメソッドを呼び出して AController に警告し、AController 自体を呼び出して scrollView を非表示にすることができます。
または、AController 実装ファイルでオーバーライド-viewWillAppear
して、「self.presentedController」が BController のサブクラスであるかどうかをテストできます。そうであれば、scrollView を非表示にすることができます。
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if ([self.presentedViewController isKindOfClass:[BController class]]) {
//hide the scroll view
}
}
また、-dismissModalViewControllerAnimated:
iOS 4 以前をサポートする場合を除き、使用しないことをお勧めします。このメソッドは iOS 6 で廃止されたため、- dismissViewControllerAnimated:completion:
すぐに使用することをお勧めします。