2010-07-10 79 views
0

我在我的視圖中使用這個didlod [self.navigationController setNavigationBarHidden:YES]; 它隱藏應用程序啓動時,但當我導航到下一個屏幕,並回到主視圖不隱藏它的導航欄... 爲什麼它是這樣的?導航欄是可見的,當我導航回主視圖

我應該添加任何東西嗎?

....

+0

您缺少一些標籤。讓我們從開始:這是什麼平臺? – 2010-07-10 16:23:49

回答

4

這個工作對我來說:

- (void) viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated];  
    [self.navigationController setNavigationBarHidden:YES animated:animated]; 
} 

- (void) viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated]; 
    [self.navigationController setNavigationBarHidden:NO animated:animated]; 
} 

你不會再需要一個在viewDidLoad中。

如果從更改中不清楚,原始代碼不起作用的原因是視圖可能會保留在內存中,即使它不在屏幕上 - 所以每次需要隱藏/顯示導航欄時視圖顯示在屏幕上或屏幕外。

+0

是它對我的作品,謝謝 – 2010-07-10 18:43:06

+0

我想添加回地面圖像導航控制器根視圖 我使用 \t self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@「background.png」]]; 它不工作 – 2010-07-10 18:45:57

+0

很高興它的工作!你應該問你的背景圖像問題作爲一個新問題,讓更多的人看到它。 – JosephH 2010-07-10 18:54:20

0

viewDidLoad只會在第一次加載視圖時觸發。 viewWill每次都會引發火災。