消除UIScrollView底层的模态视图更改

必须有一些基本的东西,我在这里失踪。 我有一个UIScrollView打开,这是由客户UIScrollViewController(称为DataController)控制。 在某个时间点,需要用户input,所以我从DataController打开一个模态UIViewController:

ElementSelectController *viewController = [[ElementSelectController alloc] initWithNibName:@"ElementSelectController" bundle:nil]; viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; viewController.theDelegate = self; [self presentModalViewController:viewController animated:YES]; 

一旦用户准备好模态视图,它将被再次解散。 这也发生在DataController上:

 [self dismissModalViewControllerAnimated:YES]; 

这一切工作正常。 但是,当模态视图消失,事实certificate,底层的UIScrollView被调整到全屏,并滚动到位置(0,0)。 即使有一个简单的模态观点,这种情况也是如此,除此之外别无他法。 显然,我希望UIScrollView保持与模态视图出现前相同的状态和大小。

任何想法我做错了什么?

我检查了UIScrollView框架设置(通过setFrame中的一个断点:一个自定义UIScrollView)的堆栈跟踪,它似乎是从以下方式调用:

 -[UITransitionView transition:fromView:toView:] 

这是通过dismissModalViewControllerAnimated调用通过调用。

 -[UITransitionView transition:fromView:toView:] 

从模态转换到你的观点是完全正常的。 这是animation等,如果你认为可以有所作为,试试你的animation模式。

看看你的viewWillAppearWillDisappearDidAppear...即使是LoadUnload如果合适的话,虽然不太可能那些被称为你的微不足道的testing模式。 尝试在这些方法中放置一些日志logging来查看被调用的内容。

你也说在这些方法中没有自定义代码,或者你的控制器根本不覆盖它们? 可以有所作为。