У меня есть приложение с табличным представлением в корне в контроллере навигации, и при выборе ячейки таблицы оно отображает новый контроллер представления, который содержит только UIWebView (с панелью инструментов и панелью навигации).
В зависимости от того, как я представляю новый веб-вид, функция, с помощью которой пользователь может нажать на строку состояния вверху и прокрутить веб-просмотр вверх, либо работает, либо не работает.
Если я использую:
- (void) presentModalViewController: (UIViewController *) modalViewController animated: (BOOL) animated
в RootView, затем веб-просмотр прокручивается до самого верха.
Если я изменю эту строку кода и вместо этого использую:
- (void) pushViewController: (UIViewController *) viewController animated: (BOOL) animated
на контроллере навигации, затем функция scrollsToTop перестает работать.
Однако я действительно хочу использовать, по другим причинам в контексте приложения, метод pushViewController. НО, я также хочу сохранить поведение scrollsToTop.
До сих пор я пробовал различные подходы, некоторые из которых описаны здесь:
-Попытка установить внутреннее свойство scrolllsToTop для веб-просмотра scrolllsToTop
((UIScrollView *)[[webView valueForKey:@"_internal"] valueForKey:@"scroller"]).scrollsToTop = YES;
(Без заметного эффекта).
-Изменяется порядок установки свойств NavBar или не устанавливается вообще
-Добавление дополнительных вызовов "window makeKeyAndOrderFront" после нажатия нового представления.
Я не верю, что есть другие представления, которые могут требовать свойство "scrollsToTop" (и первый тест выше подтверждает это в любом случае).
Если не пытаться встроить UIWebView в UIScrollView, что, как я ожидаю, будет болезненным, у меня закончились маршруты для решения этой проблемы.
Я надеюсь, что кто-то еще нашел способ исправить это?