私のアプリではpresentModalViewControllerを使用しており、次のコントローラーではUIScrollViewを使用しています.presentModalViewControllerを閉じるためにもUITapGestureRecognizerが使用されています
私のコードは、
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedOnView:)];
tapGesture.numberOfTapsRequired = 1;
tapGesture.numberOfTouchesRequired = 1;
tapGesture.delegate = self;
[self.fullScreenImageView addGestureRecognizer:tapGesture];
-(void)tappedOnView:(UIGestureRecognizer*)gestureRecognizer {
[self dismissModalViewControllerAnimated:YES];}
しかし、それは私にエラーを与えます
attempt to dismiss modal view controller whose view does not currently appear. self = <UITabBarController: 0xabb0610> modalViewController = <FullScreenViewController: 0xab5c440>
だから私は呼び出し方を次のように置き換えます
if ([self respondsToSelector:@selector(presentingViewController)]) {
[self.presentingViewController.presentingViewController dismissModalViewControllerAnimated:YES]; // for IOS 5+
} else {
[self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES]; // for pre IOS 5
}
しかし、コードは機能しません。presentModalViewController を却下できません。スクロールビューがないと機能します。上記のコードで何が間違っていますか?