2

UINavigationBar (UINavigationController に添付) の高さを縮小する必要があります。

UINavigationControllerDelegate の navigationController:didShowViewController メソッドを使用してこれを実行しましたが、正常に動作しています。

問題は、メイン ビューに表示されているビュー コントローラーです。新しいナビゲーションバーの高さを反映するようにサイズを変更していませんでした。したがって、didShowViewController メソッドはビューコントローラーのビュー フレームのサイズも変更しますが、これは正常に機能します。

ただし、新しいViewControllerまたはポップをプッシュすると、次のビューへのアニメーションの移行中にビューが元の位置にシフトすることが常にわかります。次に、NavControllerDelegate の didShowViewController にあるコードのために、それを元に戻します。

シフトダウンが起こらないようにする最善の方法に興味があります。

フレームのサイズを変更するコードを willShowViewController に配置しようとしましたが、何もしません。

また、ポップされている UIViewController のビューである UIView のフレームも、適切な/シフトされた寸法であることを確認しました。そこに行きません。

pushViewController が呼び出された後、UINavigationController の didShowViewController が呼び出される前に、描画アクションをインターセプトする必要があるようです。

私は自分のコードを何時間も見つめていました...どこにも行きません。うまくいけば、これはそこにいる誰かにとって意味があります。

ありがとう!!!

4

1 に答える 1

2

もう1つのオプションは、NavigationControllersのnavigationBarHiddenをYESに設定することです。これにより、ナビゲーションバーが完全に非表示になり、バーが存在する場所に任意のビューを描画できます。ナビゲーションメソッド(プッシュ、ポップなど)をラップするビューにコントロールを配置するだけです。ただし、ナビゲーションバーと同じスタイルにするのは難しいかもしれません。

于 2009-12-07T19:10:24.543 に答える