2013-10-09 32 views
-1

我發現一些情況下,我在MainStoryboard中設置的Global Tint沒有傳播到某個子UIViewsiOS7全球色調不影響UIToolbar

情況的例子是簡單地通過增加開始與「MasterDetail」模板應用,並顯示在MasterViewControllerUIToolbar

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

任何項目我添加到工具欄出現在系統默認的色彩,而不是我的自定義全局色調。

其他人有問題嗎?有沒有人找到解決辦法? 謝謝。 enter image description here

回答

0

我找到了解決方法。

通過設置UIWindow的色調和事情的工作,在代碼中設置'全局色調'。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 

    [[[application windows] lastObject] setTintColor:[UIColor greenColor]]; 

    return YES; 
} 

所以儘管蘋果文件說,全球色調設置是整個應用程序,有明確與一個問題,你需要設置它在代碼上UIWindow

+1

最好使用[[[UIApplication sharedApplication]委託]窗口](或者如果從應用程序委託中調用self.window)來獲取窗口。 UIAlertViews有自己的窗口,所以如果警報在錯誤的時刻彈出,你不知道[[應用程序窗口] lastObject]可能是什麼。 –

0

由於某些原因,它似乎無法在工具欄上工作,但我面臨同樣的問題。

但是,您可以從AppDelegate中更改所有uitoolb的外觀(背景不是tini,出於某種原因),它的工作原理類似於魅力。

祝你好運,需要任何幫助,讓我知道; D

+0

謝謝,雖然我不想改變背景。 –