2014-06-09 45 views
2

我有一個 '' UIBarButtonItem,你可以在第4的ViewController看到popViewControllerAnimated改變UINavigationBar的公司的UIColor

返回按鈕連接到IBAction爲:

- (IBAction)backClicked:(UIBarButtonItem *)sender 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

但是當我從第四個ViewController調用popViewControllerAnimated:回到第三個ViewController時,它會改變orig標籤欄選項卡的內部顏色UINavigationBar tintColor。該的UITabBarController的原始導航欄tintColor由AppDelegate中設置爲綠色,並在彈出它更改爲深灰色(第四屆VC的導航欄的顏色)

我怎麼沒打電話popViewControllerAnimated:時失去我的導航欄tintcolor?請幫忙,我一直在想這個問題好幾天了。

回答

2

檢查您是否將其設置在先前視圖的viewWillAppear中。

+0

否UITabBar外觀是與此代碼AppDelegate.m文件中設置:'[UITabBar外觀] setTintColor:[的UIColor colorWithHexString:@ 「#669900」];'我應該重新設置第一個標籤欄選項卡視圖的viewWillAppear中的UITabBar顏色嗎? – Chisx

+0

... Nvm我只是試過..似乎我不能在viewWillAppear或viewDidLoad中設置它。 – Chisx

0

更換

[self.navigationController popViewControllerAnimated:YES]; 

以下的(這是SWIFT代碼)

self.dismissViewControllerAnimated(true, completion: nil) 

您沒有使用當你加入第四視圖控制器導航控制器。這就是爲什麼簡單地調用dismissViewControllerAnimated方法。

只有當您通過pushViewController方法添加視圖控制器時,才必須使用UINavigationController及其彈出方法。

我學會了這通過 - Go back to previous view controller doesn't work