Отклонить изменения модального представления, лежащие в основе UIScrollView

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

9
задан fishinear 24 August 2011 в 10:14
поделиться