【发布时间】:2009-11-27 10:53:42
【问题描述】:
我有一个应用程序,在导航控制器的根部有一个表格视图,在选择表格单元格时,它会显示一个仅包含 UIWebView(带有工具栏和导航栏)的新视图控制器。
根据我呈现新 Web 视图的方式,用户可以点击顶部状态栏并让 Web 视图滚动到顶部的功能可以工作或不工作。
如果我使用:
- (void)presentModalViewController:(UIViewController *)modalViewController 动画化:(BOOL)动画化
在 RootView 上,然后 webview 会滚动到顶部。
如果我更改那一行代码并改为使用:
- (void)pushViewController:(UIViewController *)viewController 动画化:(BOOL)动画化
在导航控制器上,然后 scrollsToTop 功能停止工作。
然而,出于应用程序上下文中的其他原因,我真正想使用的是 pushViewController 方法。但是,我也想保留 scrollsToTop 行为。
到目前为止,我已经尝试了各种方法,这里有一些描述:
-尝试设置webview内部scrollView scrollsToTop属性
((UIScrollView *)[[webView valueForKey:@"_internal"] valueForKey:@"scroller"]).scrollsToTop = YES;
(无明显效果)。
-更改设置 NavBar 属性的顺序或根本不设置任何属性 - 在新视图推送后添加额外的“window makeKeyAndOrderFront”调用。
我不相信那里有其他视图可以声明“scrollsToTop”属性(上面的第一个测试证明无论如何)。
没有尝试将 UIWebView 嵌入到 UIScrollView 中,我预计这会很痛苦,我已经没有办法探索解决这个问题了。
我希望其他人已经找到了解决此问题的方法?
【问题讨论】: