のUIWebView
ルート ビューとして がありUINavigationController
ます。Web ページの読み込みが完了したら、ナビゲーション バーを非表示にして、元に戻す方法を探しています。現在、ユーザーがステータスバーをタップしたときにそれを実行しようとしています (このアプローチは、私が望むよりも複雑に見えます)。
これを達成するために、まず 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;
}
私はこれがうまくいくことを望んでいましたが、ここで何が起こりますか:
- ページが読み込まれ、ナビゲーション バーが非表示になります (これは良いことです)。
- ステータスバーをタップしようとしても何も起こらない(悪い)
- 下にスクロールして、ウェブビューがステータスバーから「遠く」なるようにします
- WebView を手放さずに、別の指でステータス バーをタップすると機能します。(それは変だ :)
すっごく、それに関する助けはありますか?なぜこうなった?