Должно быть что-то базовое, чего мне здесь не хватает. У меня есть открытый UIScrollView, который контролируется клиентским UIScrollViewController (называется DataController). В определенный момент времени требуется ввод данных от пользователя, поэтому я открываю модальный UIViewController из DataController:
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 (через точку останова в setFrame: пользовательского UIScrollView), и кажется, что он вызывается из:
-[UITransitionView transition:fromView:toView:]
, который вызывается via, via из вызова dismissModalViewControllerAnimated.