我有一个UIWebView
作为UINavigationController
的根视图。当网页加载完毕后,我隐藏了导航栏,我正在寻找一种方法来显示它。现在,当用户点击状态栏时,我正试图这样做(this approach看起来比我想要的更复杂。)
为了实现这一点,首先我得到了webView的scrollView:
for (id subview in mainWebView.subviews) {
if ([[subview class] isSubclassOfClass: [UIScrollView class]]) {
((UIScrollView *)subview).delegate = self;
}
}
然后我使用委托方法:
-(BOOL) scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
[self.navigationController setNavigationBarHidden:NO animated:YES];
return NO;
}
我希望这会奏效,但这是发生的事情:
Soooo,对此有何帮助?为什么会这样?
答案 0 :(得分:1)
我刚刚在iOS 5.0中尝试了这个,它似乎按预期工作:
[self.webView.scrollView setDelegate:self];
[self.webView.scrollView setScrollsToTop:YES];
然后:
-(void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
[self.navigationController setNavigationBarHidden:NO animated:NO];
}
答案 1 :(得分:0)
我有同样的问题。我解决了它:
[[[webView subviews] objectAtIndex:0] setScrollsToTop:NO];
您还可以通过以下方式访问iOS 5中的scrollView属性:
webView.scrollView.scrollsToTop = NO ;