2012-02-21 57 views
1

我已將圖像添加到我的項目中。奇怪的是,在文件系統上它位於應用程序的根目錄中,而在XCode中的項目瀏覽器中,我已將它放在/Images/navbar-bg.png中。如何使這一致?無法將背景圖像設置爲UINavigationController

順便說一句,我想o添加它作爲背景圖像到我的UINavigationController。這是代碼,但我沒有看到從默認的藍色背景的變化:

// navigation 
navigationController = [[UINavigationController alloc] initWithRootViewController:cardListViewController]; 
// ps hue: 37, 53, -5 
navigationController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"navbar-bg" ofType:@"png"]]]; 

self.window.rootViewController = navigationController; 

我也試過UIImage imageNamed沒有結果。我想通過編程來完成,而且我在這裏沒有使用任何xib。

感謝

回答

1

你在Xcode的工程資源管理器實際上並不代表文件夾中看到這些黃色的前瞻性文件夾圖標;他們是groups。當然,您可以將該文件移出Images子文件夾以使其保持一致,但我認爲您希望做到相反。

要將項目添加到您的項目並讓它們保留源文件夾名稱,您必須創建「文件夾引用」。在添加文件...對話框中,選擇「爲所有添加的文件夾創建文件夾引用」單選按鈕。你會得到一個藍色的文件夾圖標,而不是一個黃色的;該文件夾中的所有項目都將添加到您的項目中,並且每當您更改該文件夾的內容時,構建的可執行文件都將匹配其內容。

......而且,你問的第二個問題...

在iOS 5中,將圖像添加到導航欄,使用UINavigationBar:setBackgroundImage

0

如果它是導航控制器的背景顏色,則導航控制器中顯示的任何控制器將顯示在其上。這意味着它將永遠不可見。你看到的是cardlistcontroller,你將不得不在這個控制器上設置背景圖像。

0

試試這個, 將此代碼寫入您的viewDidload方法。那就是它

UINavigationBar *navigationBar = self.navigationController.navigationBar; 
UIImage *image = [UIImage imageNamed: @"NavBar-Wood.png"]; 
[navigationBar setBackgroundImage:image forBarMetrics: UIBarMetricsDefault]; 
self.navigationController.navigationBar.tintColor = [UIColor brownColor]; 

謝謝。