在我的应用我使用presentModalViewController和我用的UIScrollView下一个控制器,还解雇presentModalViewController UITapGestureRecognizer用于解雇presentModalViewController没有工作过的UIScrollView
我的代码是什么样子,
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。 没有滚动查看其工作。上面的代码有什么问题?
“ - (void)tappedOnView:(UIGestureRecognizer *)gestureRecognizer {..}”在哪里实现?在哪个视图控制器?下一个视图控制器上的 – Petar 2013-03-25 13:41:32
。 – Paddy 2013-03-25 13:51:09
那么,从你得到的错误信息,显然自我是一个tabbarcontroller,所以为了消除模态视图控制器,你需要得到当前视图控制器在tabbar。试试[self.selectedViewController dismissModalViewControllerAnimated:YES]; ? – Petar 2013-03-25 13:58:33