0

UINavigationControllerの下でUITableViewsを使用して3レベル深くナビゲートした後、最後に次を呼び出すUIViewControllerを表示します。

[self.navigationController popViewControllerAnimated:YES];

この結果が表示されます。これは、UITableViewの上にオーバーレイされたUINavigationBarです。

ここに画像の説明を入力してください

ビューをポップした後にのみ発生するこのオーバーレイを修正するにはどうすればよいですか?

展開ターゲット6.0

私はいくつかの似たような質問を見てきましたが、正確にはこのシナリオではなく、答えもありません。

ところで:ナビゲーションバーの戻るボタンを使用しても、この動作は発生しません。

4

2 に答える 2

1

UINavigationControllerから複数のビューをポップする場合、ビューを完全にロードする必要があることがわかりました。そうしないと、UIが混乱し、奇妙に表示されます。したがって、私の場合、チェックを追加し、ロード後にビューをポップしました。

- (void) viewDidAppear:(BOOL)animated {   
    if (self->doPopView) {
        [self.navigationController popViewControllerAnimated:YES];
    } else {
       // ...
    }
}

このアプローチにより、UINavigationControllerとUITableViewの表示の問題が解決されました。

于 2013-03-05T21:53:37.623 に答える
0

ビューが完全にアンロードされていないため、この奇妙な動作は、UITableViewControllerすべてのドリルダウンに同じものを使用していますか。同じ場合、2番目のレベルのドリルダウンで正常に機能しますか?

于 2013-02-19T19:09:46.610 に答える