這是我的問題。 我有一個應用程序使用UITabBar,並在一些視圖上的一些NavigationControllers,和酒吧都是黑色不透明。由於我有超過6個選項卡,它打開UIMoreListController,到目前爲止,我可以更改導航欄的顏色。 我的問題是當用戶點擊編輯按鈕來組織moreListController上的工具欄。標題欄(我不知道它是一個工具欄還是導航欄)是藍色的。我想將其改爲黑色不透明。任何人都知道如何去做? 此致敬禮! Marcelo Marsson。UIMoreListController編輯modalViewController工具欄(或導航欄)顏色變化
0
A
回答
0
我做這在以前的項目(但是,我必須強調應用程序從未發佈)通過實施UITabBarControllerDelegate
協議,該方法具體爲:
- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers
{
UIView *editView = [[[self.tabBarController view] subviews] objectAtIndex:1];
UINavigationBar *modalNavBar = [[editView subviews] objectAtIndex:0];
[modalNavBar setBarStyle:UIBarStyleBlack];
}
當然,這是極其容易因爲我假設這些索引的子視圖數組中的項目是我所期望的。
如果您要嘗試這種方法,我會謹慎行事,並在繼續前進行儘可能多的檢查。在訪問特定索引之前檢查數組的界限 - 檢查這些索引中的對象是否響應您要發送給它們的方法,等等。
同樣,我不認爲我可以推薦這種方法用於運輸應用程序,但我不知道有任何其他方式在iOS 5之前通過它的UI自定義API來執行此操作。
0
第一個答案完美的作品,但我想要一些檢查... 這樣,最糟糕的事情可能發生(除了蘋果不批准該應用程序)是該欄不會改變顏色。 謝謝Jasarien的指導!
- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers
{
//Prepara a variavel que vai armazenar a view;
UIView* edtView=nil;
for (int i=0; i<[[[self.tabBarController view] subviews]count]; i++) {
//checa se a subview é da classe esperada...
if ([NSStringFromClass([[[[self.tabBarController view] subviews] objectAtIndex:i]class]) isEqualToString:@"UITabBarCustomizeView"])
{
//Beleza... quebra o laço...
NSLog(@"Achei!! sou eu do Indice %d",i);
edtView=[[[self.tabBarController view] subviews] objectAtIndex:i];
break;
}
}
//Se nao achar a variavel, sabe-se lá deus por que, sai do método.
if (edtView==nil) {
return;
}
//Pega a NavigationBar
UINavigationBar *modalNavBar = nil;
for (int i=0; i<[[edtView subviews]count]; i++) {
//checa se a subview é da classe esperada...
if ([[[edtView subviews]objectAtIndex:i]isKindOfClass:[UINavigationBar class]])
{
//Beleza... quebra o laço...
NSLog(@"Achei!! sou eu do Indice %d",i);
modalNavBar=[[edtView subviews]objectAtIndex:i];
break;
}
}
//checa se a navBar existe
if (modalNavBar==nil) {
return;
}
//muda a cor da navBar!!!
[modalNavBar setBarStyle:UIBarStyleBlack];
}
0
有改變所有的導航欄樣式,而不是單獨改變每一個或設置代表們使用TabBar或其他任何一個更簡單的方法:
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];
只需設置該代碼的一個你的初始意見。有了這個,更多的導航控制器和配置導航控制器(在點擊更多導航控制器中的「編輯」後出現)可以獲得不同的風格。像這樣,您可以將其顏色更改爲不同的顏色或更改背景圖像。
希望這會有所幫助。
相關問題
- 1. 導航欄顏色變化 - 如何
- 2. 設置工具欄的顏色和導航欄後退按鈕
- 3. 狀態欄顏色不變根據導航欄的顏色
- 4. Jquery - 導航欄上的導航欄顏色變化不會反轉
- 5. 導航欄的HTML顏色
- 6. Bootstrap 4導航欄顏色
- 7. 默認導航欄顏色
- 8. 導航欄顏色問題
- 9. 導航欄字體顏色
- 10. Bootstrap導航欄背景顏色不變
- 11. 在twitter引導中編輯導航欄文本顏色
- 12. 麻煩編輯顏色引導移動友好導航欄
- 13. Twitter引導程序導航欄按鈕顏色變化懸停
- 14. 色調導航圖標在工具欄
- 15. iPad標題欄。導航欄或工具欄?
- 16. Android編輯導航欄
- 17. DotNetNuke編輯導航欄
- 18. 改變顏色爲Android的工具欄
- 19. 工具欄項目顏色
- 20. 陰影變色導航欄
- 21. 搜索欄在導航欄中改變顏色
- 22. 狀態欄和導航欄顏色不會改變
- 23. UiBarButtonItem沒有工具欄或導航條
- 24. 以編程方式更改狀態欄顏色等於導航欄顏色
- 25. 如何更改導航工具欄的顏色
- 26. 添加到工具欄導航控制器 - 顏色失配
- 27. 工具欄顯示導航欄內部
- 28. 工具欄和導航欄壞動畫
- 29. 點擊導航欄上的顏色改變顏色
- 30. 將導航欄顏色混合到背景顏色(漸變?)
它的工作原理!因爲做一些檢查,我稍微改變了一點。 – Marsson
請注意!我無愧於自己的一切責任! ;) – Jasarien
大聲笑...我做了一些變化和檢查當然...張貼... – Marsson