0

我有一個使用導航欄的應用程序。我想要實現的是當我從導航序列中推入最後一個視圖時使其透明,並使其不透明當我單擊導航後退按鈕時Iphone UINavigationController onchange事件

我試着用dealoc,但它不起作用。我的觀點是一個UIScrollView不是一個UiView,但我想這沒有什麼區別。

在我看來,eighter我必須控制的導航欄上的事件,和看風景的類型與循環或在我目前的看法「卸載」觸發一些事件

當我推在視圖中我做了 self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

並且當彈出我需要的

self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;

+0

我從來沒有見過透明的NavBar。你能指點我一個屏幕截圖還是有這個的應用程序,所以我可以看到你指的是什麼? – 2010-01-12 22:24:37

+0

當然你有。使用內置的照片應用程序查看一些照片。 – Nimrod 2010-01-12 23:28:14

回答

1

使用UINavigationController或UITabController推送和彈出視圖將調用視圖 {Will,Did} {出現,消失}方法,因此我認爲您需要掛鉤到子視圖的ViewWillDisappear。

我建立它,以便頂級導航控制器將自己設置爲孩子的委託,並且孩子用更改導航欄樣式的「我正在卸載」類型函數調用它的delgate。

0

你不能真正依靠dealloc來調用,更不用說當你想要它時。這應該只用於釋放保留的對象。

我認爲你應該可以在視圖控制器的viewDidAppear和viewDidUDisappear方法中添加barStyle更改。

1

實際上,最好的方法是使用UINavigationControllerDelegate。我擴展了UINAvigationController並將委託設置爲self並使用了UINavigationControllerDelegate協議的其中一種方法。