Должно быть что-то базовое, чего мне здесь не хватает. У меня открыт 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:]
, который вызывается через, через вызов dismissModalViewControllerAnimated.