0

ナビゲーションバーを使用するアプリがあります。私が達成したいのは、ナビゲーションシーケンスから最後のビューを押し込んだときに透明にし、ナビゲーションの戻るボタンをクリックすると不透明にすることです

私はdealocで試しましたが、うまくいきません。私のビューは UiView ではなく UIScrollView ですが、違いはないと思います。

私が見ているように、ナビゲーションバーでイベントを制御し、ループでビューのタイプを確認するか、現在のビューの「アンロード」でイベントをトリガーする必要があります

ビューをプッシュすると、self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; を実行します。

そしてそれが飛び出すとき、私は

self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;

4

3 に答える 3

1

UINavigationController または UITabController でビューをプッシュおよびポップすると、ビューの {Will,Did}{Appear,Disappear} メソッドが呼び出されるため、子ビューの ViewWillDisappear にフックする必要があると思います。

最上位のナビゲーション コントローラーが自分自身を子のデリゲートとして設定し、子がナビゲーション バーのスタイルを変更する「I'm unloading」タイプの関数を使用してそのデリゲートを呼び出すように設計します。

于 2010-01-12T23:35:41.357 に答える
1

実際、これを行う最善の方法は、UINavigationControllerDelegate を使用することです。UINavigationController を拡張し、デリゲートを自己に設定し、UINavigationControllerDelegate プロトコルのメソッドの 1 つを使用しました。

于 2014-03-20T19:46:10.007 に答える
0

dealloc が呼び出されることに依存することはできません。必要な場合はなおさらです。これは、保持されたオブジェクトを解放するためにのみ使用する必要があります。

ビューコントローラーのviewDidAppearおよびviewDidUDisappearメソッドにbarStyleの変更を追加できるはずだと思います。

于 2010-01-12T23:31:48.340 に答える