这里我可能缺少了一些基础知识。我打开了一个UIScrollView,它由一个自定义的UIScrollViewController(称为DataController)控制。在某个时刻,需要用户输入,因此我从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];
这一切都运行得很好。 但是当模态视图消失时,底部的UIScrollView被调整为全屏,并滚动到位置(0,0)。即使是一个简单的模态视图,只需要被关闭即可。 显然,我希望UIScrollView保持与显示模态视图之前相同的状态和大小。 你有什么想法吗? 我检查了当设置UIScrollView帧时的堆栈跟踪(通过自定义UIScrollView的setFrame:中断点),它似乎是从以下位置调用的:
-[UITransitionView transition:fromView:toView:]
通过dismissModalViewControllerAnimated调用的方法叫做via。