我必须在这里找到一些基本的东西.我打开了一个UIScrollView,它由客户UIScrollViewController(称为DataController)控制.在某个时间点,需要用户输入,所以我从DataController打开一个模态UIViewController:
ElementSelectController *viewController = [[ElementSelectController alloc] initWithNibName:@"ElementSelectController" bundle:nil];
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
viewController.theDelegate = self;
[self presentModalViewController:viewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
一旦用户准备好模态视图,它将再次被解除.这也发生在DataController中:
[self dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
一切正常.但是当模态视图消失时,事实证明底层的UIScrollView被调整为全屏,并滚动到位置(0,0).即使是简单的模态视图也是如此,除了被忽略之外什么都不做.显然,我希望UIScrollView保持与模态视图出现之前相同的状态和大小.
我有什么想法我做错了吗?
我在设置UIScrollView框架时检查了堆栈跟踪(通过自定义UIScrollView的setFrame中的断点),看起来它是从以下位置调用的:
-[UITransitionView transition:fromView:toView:]
Run Code Online (Sandbox Code Playgroud)
通过dismissModalViewControllerAnimated调用来调用via.